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

Обзор компонентов Code

Раздел предоставляет обзор существующих компонентов и их функций:

  1. Gitaly - Git RPC-сервис для обработки всех Git-запросов, сделанных GitLab.
  2. Praefect - прозрачный прокси между любым Git-клиентом и узлами хранения Gitaly.
  3. Sidekiq - процессор фоновых заданий.
  4. Webservice - предоставляет пользовательский интерфейс и публичный API продукта.
  5. Webservice-internal-api - предоставляет внутренний API для коммуникации компонентов между собой
  6. Shell - программа, разработанная в GitLab для обработки Git-сессий на основе SSH и изменения списка авторизованных ключей.
  7. Toolbox - многофункциональный инструмент, который позволяет администраторам восстанавливать данные из резервных копий или использовать rails-консоль.
  8. Exporter - процесс, разработанный внутри компании, позволяющий экспортировать метрики о внутренней работе приложения Code в Prometheus.
  9. MRA - означает “утверждение слияния” (merge request approval). Сервис, реализующий соответствующий функционал GitLab, включая возможность CODEOWNERS.
  10. Migrations-job - задание, выполняющее миграции базы данных.
  11. Backup-cronjob - cron-задача, отвечающая за процесс резервного копирования.
  12. Pages - функция, позволяющая публиковать статические веб-сайты непосредственно из репозитория в GitLab. Опциональный компонент.
  13. Registry - реестр контейнеров, который позволяет загружать и скачивать образы. Опциональный компонент.

Подробнее с компонентами можно познакомиться по этой ссылке из официальной документации


Все параметры CodeInstance CRD

Имейте в виду, что некоторые параметры могут быть взаимоисключающими (например, redis.host и redis.sentinel).

apiVersion: deckhouse.io/v1
kind: CodeInstance
metadata:
  name: code
spec:
  appConfig:
    contentSecurityPolicy:
      enabled: <bool>
      reportOnly: <bool>
      directives: { }
    cronJobs:
      <cron job name>:
        cron: string
        jobClass: string
    customHtmlHeaderTags: <string>
    ldap:
      preventSignin: <bool>
      servers:
        main:
          label: <string>
          host: <string>
          port: <int>
          uid: <string>
          base: <string>
          encryption: <string>
          verifyCertificates: <bool>
          timeout: <int>
          activeDirectory: <bool>
          allowUsernameOrEmailLogin: <bool>
          blockAutoCreatedUsers: <bool>
          userFilter: <string>
          lowercaseUsernames: <bool>
          bindDn: <string>
          password: <string>
          attributes:
            username: <array>
            email: <array>
            name: <string>
            firstName: <string>
            lastName: <string>
    omniauth:
      enabled: <bool>
      allowBypassTwoFactor: <bool>
      allowSingleSignOn: <bool|array>
      autoLinkLdapUser: <bool>
      autoLinkSamlUser: <bool>
      autoLinkUser: <bool>
      autoSignInWithProvider: <string>
      blockAutoCreatedUsers: <bool>
      syncProfileAttributes: <array>
      syncProfileFromProvider: <array>
      externalProviders: <array>
      providers: <array>
    rackAttack:
      gitlabBasicAuth:
        ipWhitelist: <array>
        maxretry: <int>
        findtime: <int>
        bantime: <int>
    signinEnabled: <bool>
    signupEnabled: <bool>
    usernameChangeEnabled: <bool>
  backup:
    backupBeforeUpdate: <bool>
    backupStorageGb: <int>
    enabled: <bool>
    s3:
      bucketName: <string>
      tmpBucketName: <string>
      external:
        accessKey: <string>
        endpoint: <string>
        provider: <string>
        region: <string>
        secretKey: <string>
    cronSchedule: <string>
    skipComponents: <array>
    nodeSelector: {}
    tolerations: {}
    persistentVolumeClaim:
      enabled: <bool>
      storageClass: <string>
      size: <string>
  gitData:
    storagePerReplicaGb: <int>
    storageClass: <string>
    resources:
      memory: <string>
      cpu: <string>
  storages:
    postgres:
      mode: <string>
      external:
        host: <string>
        port: <int>
        database: <string>
        username: <string>
        password: <string>
        praefectDatabase: <string>
        praefectUsername: <string>
        praefectPassword: <string>
        sslMode: <string>
      intenal: { }
    redis:
      mode: <string>
      external:
        auth:
          enabled: <bool>
          passowrd: <string>
          username: <string>
        host: <string>
        port: <string>
        sentinels: <array>
        masterName: <string>
        scheme: <string>
        serverCA: <string>
      internal: { }
    s3:
      mode: <string>
      bucketNames:
        artifacts: <string>
        ciSecureFiles: <string>
        dependecyProxy: <string>
        externalDiffs: <string>
        lfs: <string>
        packages: <string>
        terraformState: <string>
        uploads: <string>
      external:
        provider: <string>
        region: <string>
        endpoint: <string>
        accessKey: <string>
        secretKey: <string>
        proxyDownload: <bool>
        storageOptions:
          serverSideEncryption: <string>
          serverSideEncryptionKmsKeyId: <string>
      internal: { }
  network:
    ingressClass: <string>
    useOwnLoadBalancer: <bool>
    web:
      hostname: <string>
      annotations: { }
      https:
        mode: <string>
        customCertificate:
          secretName: <string>
        certManager:
          clusterIssuerName: <string>
    gitSsh:
      hostname: <string>
      service:
        annotations: { }
        type: <string>
        nodePort: <int>
  features:
    mail:
      outgoingEmail:
        displayName: <string>
        from: <string>
        replyTo: <string>
        subjectSuffix: <string>
        smtp:
          enabled: <bool>
          address: <string>
          port: <int>
          authentication: <string>
          username: <string>
          password: <string>
          domain: <string>
          tls: <bool>
          starttlsAuto: <bool>
          opensslVerifyMode: <string>
      incomingEmail:
        enabled: <bool>
        address: <string>
        host: <string>
        port: <int>
        ssl: <bool>
        startTls: <bool>
        user: <string>
        password: <string>
        serviceDeskEmail:
          enabled: <bool>
          address: <string>
          host: <string>
          port: <int>
          ssl: <bool>
          startTls: <bool>
          user: <string>
          password: <string>
    pages:
      enabled: <bool>
      s3:
        mode: <string>
        bucketPrefix: <string>
        internal: { }
        external:
          provider: <string>
          region: <string>
          endpoint: <string>
          accessKey: <string>
          secretKey: <string>
          storageOptions:
            serverSideEncryption: <string>
            serverSideEncryptionKmsKeyId: <string>
    registry:
      enabled: <bool>
      s3:
        mode: <string>
        bucketName: <string>
        internal: { }
        external:
          provider: <string>
          region: <string>
          endpoint: <string>
          accessKey: <string>
          secretKey: <string>
      ingress:
        annotations: {}
        hostname: <string>
        https:
          mode: <string>
          customCertificate:
            secretName: <string>
          certManager:
            clusterIssuerName: <string>
      maintenance:
        readOnly:
          enabled: <bool>
        uploadPuring:
          enabled: <bool>
          age: <string>
          interval: <string>
          dryrun: <bool>
  scaling:
    highAvailability: <bool>
    targetUserCount: <int>

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

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

  • appConfig - конфигурация приложения Code. Семантически идентична gitlab.rb в GitLab для облегчения переноса настроек приложения из существующего экземпляра
    • appConfig.contentSecurityPolicy - секция с параметрами Content Security Policy. Подробнее здесь
      • appConfig.contentSecurityPolicy.enabled - включение contentSecurityPolicy
      • appConfig.contentSecurityPolicy.reportOnly - использование contentSecurityPolicy в режиме reportOnly
      • appConfig.contentSecurityPolicy.directives - словарь директив для contentSecurityPolicy
    • appConfig.cronJobs - Список задач выполняемыемых периодически для самовосстановления, выполнения синхронизации и т.д.
      • appConfig.cronJobs.<cron_job_name>.cron - Расписание задачи
      • appConfig.cronJobs.<cron_job_name>.jobClass - Переопределить программный класс задачи
    • appConfig.customHtmlHeaderTags - дополнительные пользовательские HTML header теги для интерфейса
    • appConfig.omniauth - раздел с настройками Omniauth. Подробнее здесь
      • appConfig.omniauth.enabled - включение Omniauth
      • appConfig.omniauth.allowBypassTwoFactor - разрешить обход двухфакторной аутентификации
      • appConfig.omniauth.allowSingleSignOn - разрешить единый вход (SSO)
      • appConfig.omniauth.autoLinkLdapUser - автоматически связывать пользователей LDAP
      • appConfig.omniauth.autoLinkSamlUser - автоматически связывать пользователей SAML
      • appConfig.omniauth.autoLinkUser - автоматически связывать пользователя
      • appConfig.omniauth.autoSignInWithProvider - автоматический вход через провайдера
      • appConfig.omniauth.blockAutoCreatedUsers - блокировать автоматически созданных пользователей
      • appConfig.omniauth.syncProfileAttributes - атрибуты профиля, подлежащие синхронизации
      • appConfig.omniauth.syncProfileFromProvider - синхронизировать профиль с провайдера
      • appConfig.omniauth.externalProviders - внешние провайдеры
      • appConfig.omniauth.providers - провайдеры Omniauth
    • appConfig.ldap - раздел с настройками интеграции LDAP
      • appConfig.ldap.preventSignin - Отключить авторизацию в UI через LDAP для пользователей
      • appConfig.ldap.servers
        • appConfig.ldap.servers.main.label - Человеко-читаемое имя для LDAP сервера
        • appConfig.ldap.servers.main.host - FQDN-адрес LDAP сервера
        • appConfig.ldap.servers.main.port - Порт для подключения к LDAP серверу
        • appConfig.ldap.servers.main.uid - LDAP аттрибут, который определяет используемый пользователем логин для авторизации
        • appConfig.ldap.servers.main.base - Базовый DN, от которого производится поиск пользователей
        • appConfig.ldap.servers.main.encryption - Метод шифрования для подключения
        • appConfig.ldap.servers.main.verifyCertificates - Включает проверку SSL сертификата, если метод шифрования “start_tls” или “simple_tls”
        • appConfig.ldap.servers.main.timeout - Определяет таймаут выполнения LDAP запросов в секундах
        • appConfig.ldap.servers.main.activeDirectory - настройка, указывающая что LDAP сервер является Active Directory LDAP сервером
        • appConfig.ldap.servers.main.allowUsernameOrEmailLogin - Если включено, Gitlab игнорирует все после первого @ в LDAP логине отправленном пользователем для авторизации
        • appConfig.ldap.servers.main.blockAutoCreatedUsers - Настройка для блокировки пользователей до рассмотрения администратором
        • appConfig.ldap.servers.main.userFilter - Фильтр LDAP пользователей в формате RFC 4515
        • appConfig.ldap.servers.main.lowercaseUsernames - Если задано, то Gitlab перевод логин пользователя в нижний регистр
        • appConfig.ldap.servers.main.bindDn - Полный DN пользователя, которым вы подключаетесь для синхронизации
        • appConfig.ldap.servers.main.password - Пароль пользователя для синхронизации
        • appConfig.ldap.servers.main.attributes - Настройки для маппинга LDAP атрибутов
          • appConfig.ldap.servers.main.attributes.username - @username c которым будет связан аккаунт Code. Если параметр содержит эл. почту то логином в Code будет часть строки до @
          • appConfig.ldap.servers.main.attributes.email - LDAP атрибут для эл. почты пользователя
          • appConfig.ldap.servers.main.attributes.name - LDAP атрибут для отображемого имени
          • appConfig.ldap.servers.main.attributes.firstName - LDAP атрибут для имени пользователя
          • appConfig.ldap.servers.main.attributes.lastName - LDAP атрибут для фамилии пользователя
        • appConfig.ldap.servers.main.syncName - синхронизировать имя пользователя Gitlab с LDAP
        • appConfig.ldap.servers.main.groupSync - настройка синхронизации групп и членства пользователей в группах
          • appConfig.ldap.servers.main.groupSync.createGroups - создавать группы автоматически
          • appConfig.ldap.servers.main.groupSync.base - базовый DN, от которого производится поиск групп
          • appConfig.ldap.servers.main.groupSync.filter - фильтр LDAP групп в формате RFC 4515
          • appConfig.ldap.servers.main.groupSync.prefix - Опциональная секция для настройки вложенной групповой иерархии
            • appConfig.ldap.servers.main.groupSync.prefix.attribute - Имя аттрибута, содержащего информацию о родительской группе
            • appConfig.ldap.servers.main.groupSync.prefix.default - Имя родительской группы по умолчанию (при ненахождении аттрибута prefix.attribute)
          • appConfig.ldap.servers.main.groupSync.topLevelGroup - Имя родительской группы, куда проводить синхронизацию LDAP групп. При отстутствии группы синхронизация будет происходить в корневую группу
          • appConfig.ldap.servers.main.groupSync.nameMaksk - Регулярное выражение для извлечения имен групп из DN
          • appConfig.ldap.servers.main.groupSync.owner - Владелец групп, синхронизированных с LDAP. По умолчанию root
          • appConfig.ldap.servers.main.groupSync.scope - Скоуп поиска групп (0 — Base, 1 — SingleLevel, 2 — WholeSubtree)
          • appConfig.ldap.servers.main.groupSync.roleMapping - Cписок словарей маппинга ролей, извлеченных из имен LDAP-групп на роли Gitlab
    • appConfig.rackAttack.gitlabBasicAuth - ограничитель скорости, используемый GitLab для настройки блокировки и ограничения пользователей. Подробнее здесь
      • appConfig.rackAttack.gitlabBasicAuth.ipWhitelist - список IP-адресов, не подпадающих под правила rackAttack
      • appConfig.rackAttack.gitlabBasicAuth.maxretry - ограничение числа попыток аутентификации Git HTTP на IP
      • appConfig.rackAttack.gitlabBasicAuth.findtime - сбросить счетчик попыток аутентификации на IP через N секунд
      • appConfig.rackAttack.gitlabBasicAuth.bantime - заблокировать IP на N секунд после слишком большого количества попыток
    • appConfig.signinEnabled - включить ли страницу входа
    • appConfig.signupEnabled - разрешить ли регистрацию новых пользователей
    • appConfig.usernameChangeEnabled - разрешить изменение имен пользователей для существующих учетных записей
    • appConfig.defaultColorMode - тема интерфейса по умолчанию
  • backup - раздел, связанный с процессом резервного копирования продукта
    • backup.enabled - включен ли процесс резервного копирования
    • backup.backupBeforeUpdate - автоматическое создание полного бэкапа GitLab компонентов перед обновлением модуля
    • backup.cronSchedule - расписание в формате cron для выполнения операций резервного копирования
    • backup.backupStorageGb - ожидаемый общий размер резервных копий (архив tar) для настройки базового хранилища
    • backup.nodeSelector - kubernetes selector для выбора ноды кластера, где будет запускаться процесс бекапа
    • backup.tolerations - kubernetes tolerations для запуска пода, отвечающего за бекапирование(toolbox), на конкретной ноде
    • backup.skipComponents - список компонентов, не подлежащих бекапированию
    • backup.s3 - раздел для описания параметров удаленного объектного хранилища, которое будет содержать резервные копии
      • backup.s3.external - раздел настройки параметров для S3-хранилища. Если эта секция не указана, будут использованы параметры из раздела storages.s3.external. В этом случае достаточно просто задать значение параметра backup.s3.bucketName
        • backup.s3.external.provider - провайдер объектного хранилища
        • backup.s3.external.region - регион бакета
        • backup.s3.external.endpoint - endpoint бакетов
        • backup.s3.external.accessKey - ключ доступа для бакета
        • backup.s3.external.secretKey - секретный ключ для бакета
      • backup.s3.bucketName - имя бакета в объектном хранилище для хранения бекапов
      • backup.s3.tmpBucketName - имя временной директории, где будут храниться бекапы перед сохранением в объектное хранилище
    • backup.persistentVolumeClaim - раздел для описания параметров постоянного хранилища Kubernetes, используемого во время резервного копирования и восстановления
      • backup.persistentVolumeClaim.enabled - использовать ли постоянные тома. В противном случае будет использоваться emptyDir
      • backup.persistentVolumeClaim.storageClass - использовать ли конкретный storageClass Kubernetes для постоянных томов
  • gitData - все, что связано с вашими данными Git
    • gitData.storageClass - Kubernetes storageClass, использумый для хранения данных Git
    • gitData.storagePerReplicaGb - размер всех данных Git. Необходим для расчета размера томов для каждой реплики
    • gitData.resources - секция определяет размер ресурсов, обслуживающих данные Git (gitaly)
      • gitData.resources.memory - выделенное количество RAM
      • gitData.resources.cpu - выделенное количество CPU
  • storages - все, что связано с хранилищами, используемыми Code. В настоящее время поддерживаются только внешние хранилища
    • storages.postgres - раздел с настройками базы данных PostgreSQL
      • storages.postgres.mode - использовать внешнюю или внутреннюю базу данных
      • storages.postgres.external - раздел с настройками внешней базы данных PostgreSQL
        • storages.postgres.external.host - FQDN-адрес сервера базы данных
        • storages.postgres.external.port - порт базы данных PostgreSQL
        • storages.postgres.external.database - основное имя базы данных
        • storages.postgres.external.username - имя пользователя для основной базы данных
        • storages.postgres.external.password - пароль для основной базы данных
        • storages.postgres.external.praefectDatabase - имя базы данных для Praefect
        • storages.postgres.external.praefectUsername - имя пользователя для базы данных Praefect
        • storages.postgres.external.praefectPassword - пароль для базы данных Praefect
        • storages.postgres.external.sslMode - Определяет с каким приоритетом будет установлено SSL-соединение
      • storages.postgres.internal - в настоящее время не поддерживается. Раздел для будущего использования
    • storages.redis - раздел с настройками брокера сообщений Redis
      • storages.redis.mode - будет использоваться внешний или встроенный брокер сообщений
      • storages.redis.external - раздел с настройками внешнего брокера сообщений Redis
        • storages.redis.external.auth - раздел для аутентификации Redis
          • storages.redis.external.auth.enabled - включена ли аутентификация для внешнего Redis
          • storages.redis.external.auth.password - пароль для Redis, если аутентификация включена
          • storages.redis.external.auth.username - пользователь Redis, если аутентификация включена
        • storages.redis.external.host - FQDN для единственного экземпляра Redis. Не требуется, если используются sentinels
        • storages.redis.external.port - порт для единственного экземпляра Redis. Не требуется, если используются sentinels
        • storages.redis.external.serverCA - CA-сертификат для redis-сервера
        • storages.redis.external.sentinels - раздел с массивом для карт хостов и портов sentinels. Необходим только при использовании sentinels
          • storages.redis.external.sentinels.host - хост конкретного экземпляра sentinel
          • storages.redis.external.sentinels.port - порт конкретного экземпляра sentinel
        • storages.redis.external.masterName - имя мастер-узла. Используется только с sentinels
        • storages.redis.external.scheme - схема подключения к redis
      • storages.redis.internal - в настоящее время не поддерживается. Раздел для будущего использования
    • storages.s3 - раздел с настройками объектного хранилища
      • storages.s3.mode - будет использоваться внешнее или встроенное объектное хранилище
      • storages.s3.bucketNames - словарь (ключ-значение), указывающий имена для всех необходимых бакетов
        • storages.s3.bucketNames.artifacts - имя бакета для хранения артефактов
        • storages.s3.bucketNames.ciSecureFiles - имя бакета для хранения секретов пайплайна
        • storages.s3.bucketNames.dependencyProxy - имя бакета для хранения артефактов dependency proxy
        • storages.s3.bucketNames.externalDiffs - имя бакета для хранения MergeRequest diffs
        • storages.s3.bucketNames.lfs - имя бакета для хранения данных git-lfs
        • storages.s3.bucketNames.packages - имя бакета для хранения пакетов
        • storages.s3.bucketNames.terraformState - имя бакета для хранения стейта terraform
        • storages.s3.bucketNames.uploads - имя бакета для хранения загрузок
      • storages.s3.external - раздел с параметрами для внешнего объектного хранилища
        • storages.s3.external.provider - провайдер объектного хранилища
        • storages.s3.external.region - регион бакетов
        • storages.s3.external.endpoint - endpoint бакетов
        • storages.s3.external.proxyDownload - опция для уменьшения исходящего трафика через разрешение клиентов скачивать напрямую из удаленного хранилища
        • storages.s3.external.accessKey - ключ доступа к бакетам
        • storages.s3.external.secretKey - секретный ключ для бакетов
        • storages.s3.external.storageOptions - раздел с низкоуровневыми настройками шифрования для объектного хранилища компонента
          • storages.s3.external.storageOptions.serverSideEncryption - режим шифрования (AES256 или aws:kms)
          • storages.s3.external.storageOptions.serverSideEncryptionKmsKeyId - Amazon Resource Name. Необходим только при использовании aws:kms для serverSideEncryption
      • storages.s3.internal - в настоящее время не поддерживается. Раздел для будущего использования
  • network - раздел для настройки параметров сети
    • network.ingressClass - Ingress класс для использования в модуле
    • network.useOwnLoadBalancer - включить ли один LoadBalancer сервис для Git SSH и UI.
    • network.web - раздел для настройки сети веб-сервиса (UI)
      • network.web.hostname - верхний префикс для имени хоста UI
      • network.web.annotations - дополнительные аннотации (в формате ключ-значение) для развертывания веб-сервиса
      • network.web.https - раздел с настройками https, в частности с параметрами, связанными с сертификатами
        • network.web.https.mode - способ хранения/выдачи сертификата. Может быть custom/certManager/global
          • network.web.https.customCertificate.secretName - имя секрета, где хранится пользовательский сертификат
          • network.web.https.certManager.clusterIssuerName - имя кластерного issuer для SSL-сертификатов
    • network.gitSsh - раздел для настройки сети компонента shell (для поддержки git по SSH)
      • network.gitSsh.hostname- переопределение имени хоста shell для отличия от стандартного
      • network.gitSsh.service - раздел с настройками kubernetes-сервиса для компонента shell
        • network.gitSsh.service.annotations - дополнительные аннотации (в формате ключ-значение) для развертывания shell
        • network.gitSsh.service.type - тип kubernetes-сервиса для экспонирования компонента shell. Для одноузлового кластера подходит nodePort, для остальных рекомендуется LoadBalancer
        • network.gitSsh.service.nodePort - nodePort для экспонирования сервиса. Применимо только для service.type=NodePort
  • features - другие необязательные компоненты, которые включаются по требованию. Вся конфигурация ниже относится к компонентам
    • features.mail - раздел с настройками для различных типов почты: входящей, исходящей, serviceDesk
      • features.mail.outgoingEmail - раздел с настройками для исходящей почты. Подробнее о параметрах можно прочитать здесь
        • features.mail.outgoingEmail.displayName - Имя отправителя, отображаемое в эл. письме
        • features.mail.outgoingEmail.from - Почта отправителя, отображаемое в эл. письме
        • features.mail.outgoingEmail.replyTo - Почта, отображаемая в Reply-To в эл. письме
        • features.mail.outgoingEmail.subjectSuffix - Приставка к теме всех исходящих писем
        • features.mail.outgoingEmail.smtp - Настройки SMTP для модуля
          • features.mail.outgoingEmail.smtp.enabled - Включить исходящие сообщения
          • features.mail.outgoingEmail.smtp.address - Адресс удаленного почтового сервера
          • features.mail.outgoingEmail.smtp.port - Порт подключения к удаленного серверу
          • features.mail.outgoingEmail.smtp.authentication - Тип SMTP авторизации (`plain”, “login”, “cram_md5” или “none” для подключения без авторизации)
          • features.mail.outgoingEmail.smtp.username - Имя пользователя для SMTP авторизации
          • features.mail.outgoingEmail.smtp.password - Пароль для SMTP авторизации
          • features.mail.outgoingEmail.smtp.domain - Опционально: HELO домен для SMTP
          • features.mail.outgoingEmail.smtp.tls - Включение SMTP/TLS (SMTPS: SMTP over direct TLS connection)
          • features.mail.outgoingEmail.smtp.starttlsAuto - Использовать STARTTLS (если опция включена на почтовом сервере)
          • features.mail.outgoingEmail.smtp.opensslVerifyMode - Режим проверки TLS (“none”, “peer”, “client_once” или “fail_if_no_peer_cert”)
      • features.mail.incomingEmail - раздел с настройками для входящей почты. Подробнее о параметрах можно прочитать здесь
        • features.mail.incomingEmail.enabled - Включить получение входящих эл. писем
        • features.mail.incomingEmail.address - Шаблон адреса электронной почты ресурса/проекта, на который дается ответ (например: code-incoming+%{key}@gmail.com). Обратите внимание, что суффикс +%{key} должен быть включен полностью в адрес электронной почты и не должен быть заменен другим значением
        • features.mail.incomingEmail.host - Адресс удаленного почтового сервера
        • features.mail.incomingEmail.port - Порт удаленного почтового сервера
        • features.mail.incomingEmail.ssl - Использовать SSL (если опция включена на IMAP сервере)
        • features.mail.incomingEmail.startTls - Использовать STARTTLS (если опция включена на IMAP сервере)
        • features.mail.incomingEmail.user - Имя пользователя для IMAP авторизации
        • features.mail.incomingEmail.password - Пароль для IMAP авторизации
        • features.mail.serviceDeskEmail - раздел с настройками для почты службы поддержки. Подробнее о параметрах можно прочитать здесь
          • features.mail.incomingEmail.serviceDeskEmail.enabled - ключить получение службой поддержки проекта(-ов) входящих эл. писем. Применимо, когда включено и настроено получение входящих эл. писем для модуля
          • features.mail.incomingEmail.serviceDeskEmail.address - Шаблон адреса электронной почты ресурса/проекта, на который дается ответ (например: project_contact+%{key}@gmail.com). Обратите внимание, что суффикс +%{key} должен быть включен полностью в адрес электронной почты и не должен быть заменен другим значением
          • features.mail.incomingEmail.serviceDeskEmail.host - Адресс удаленного почтового сервера
          • features.mail.incomingEmail.serviceDeskEmail.port - Порт удаленного почтового сервера
          • features.mail.incomingEmail.serviceDeskEmail.ssl - Использовать SSL (если опция включена на IMAP сервере)
          • features.mail.incomingEmail.serviceDeskEmail.startTls - Использовать STARTTLS (если опция включена на IMAP сервере)
          • features.mail.incomingEmail.serviceDeskEmail.user - Имя пользователя для IMAP авторизации
          • features.mail.incomingEmail.serviceDeskEmail.password - Пароль для IMAP авторизации
    • features.pages - раздел с настройками компонента Pages
      • features.pages.enabled - включить ли компонент
      • features.pages.s3 - раздел с настройками объектного хранилища для компонента
        • features.pages.s3.mode - использовать внешнее или встроенное объектное хранилище
        • features.pages.s3.bukcetPrefix - префикс для имени бакетов. Финальные имена будут иметь вид {prefix}-{name}
        • features.pages.s3.internal - в настоящее время не поддерживается. Для будущего использования
        • features.pages.s3.external - раздел настройки параметров для S3-хранилища. Если эта секция не указана, будут использованы параметры из раздела storages.s3.external. В этом случае достаточно просто задать значение параметра features.pages.s3.bucketPrefix
          • features.pages.s3.external.endpoint - пользовательский endpoint для объектного хранилища
          • features.pages.s3.external.provider - провайдер объектного хранилища
          • features.pages.s3.external.region - регион бакетов
          • features.pages.s3.external.accessKey - ключ доступа к бакету
          • features.pages.s3.external.secretKey - секретный ключ для бакета
          • features.pages.s3.external.storageOptions - раздел с низкоуровневыми настройками шифрования для объектного хранилища компонента
            • features.pages.s3.external.storageOptions.serverSideEncryption - режим шифрования (AES256 или aws:kms)
            • features.pages.s3.external.storageOptions.serverSideEncryptionKmsKeyId - Amazon Resource Name. Необходим только при использовании aws:kms для serverSideEncryption
    • features.registry - раздел с настройками компонента Registry
      • features.registry.enabled - включить ли компонент
      • features.registry.ingress - раздел с настройками входящих сетевых соединений для компонента
        • features.registry.ingress.annotations - словарь дополнительных аннотация для registry сервиса
        • features.registry.ingress.hostname - переопределенное доменное имя registry сервиса
        • features.registry.ingress.https - настройки https для входящих соединений компонента
          • features.registry.ingress.https.mode - способ хранения/выдачи сертификата. Может быть custom/certManager/global
          • features.registry.ingress.https.certManager.clusterIssuerName - имя кластерного issuer для SSL-сертификатов
          • features.registry.ingress.https.customCertificate.secretName - имя секрета, где хранится пользовательский сертификат
      • features.registry.s3 - раздел с настройками объектного хранилища для компонента
        • features.registry.s3.external - раздел настройки параметров для S3-хранилища. Если эта секция не указана, будут использованы параметры из раздела storages.s3.external. В этом случае достаточно просто задать значение параметра features.registry.s3.bucketName
          • features.registry.s3.external.provider - провайдер объектного хранилища
          • features.registry.s3.external.endpoint - пользовательский endpoint для объектного хранилища
          • features.registry.s3.external.region - регион бакетов
          • features.registry.s3.external.accessKey - ключ доступа к бакету
          • features.registry.s3.external.secretKey - секретный ключ для бакета
        • features.registry.s3.mode - использовать внешнее или встроенное объектное хранилище для компонента Registry
        • features.registry.s3.bucketName - имя бакета для компонента Registry
        • features.registry.s3.internal - в настоящее время не поддерживается. Для будущего использования
        • features.registry.s3.bucketName - имя бакета, который будет использоваться как объектное хранилище для Registry
      • features.registry.maintenance - раздел с настройками обслуживания Registry
        • features.registry.maintenance.readOnly.enabled - перевести ли Registry в режим только для чтения во время обслуживания
        • features.registry.maintenance.uploadPurging - раздел описывает функцию обслуживания, удаляющую артефакты загрузки изображений из хранилища (данные изображений не удаляются)
          • features.registry.maintenance.uploadPurging.enabled - включить ли функцию uploadPurging. Выключено в режиме readOnly
          • features.registry.maintenance.uploadPurging.age - возраст артефактов для удаления, измеряется в часах
          • features.registry.maintenance.uploadPurging.interval - интервал запуска
          • features.registry.maintenance.uploadPurging.dryrun - использовать ли в тестовом/проверочном режиме
  • scaling
    • scaling.highAvailability - включен ли режим High Availability (HA)
    • scaling.targetUserCount - сколько пользователей предполагается использовать приложение. Это влияет на множество внутренних аспектов, отвечающих за горизонтальное и вертикальное масштабирование приложения. Подробнее здесь