Доступно в редакциях:  CE, BE, SE, SE+, EE, CSE Lite (1.67), CSE Pro (1.67)

Стадия жизненного цикла модуля: General Availability

У модуля нет обязательных настроек.

Пример конфигурации

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: deckhouse-tools
spec:
  enabled: true
  version: 1

Модуль включен по умолчанию в наборах модулей: Default, Managed. Модуль выключен по умолчанию в наборе модулей Minimal.

Как явно включить или отключить модуль…

Явно включить или выключить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse. В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль deckhouse-tools, включите (или выключите) переключатель «Модуль включен». Сохраните изменения.

    Пример:

    Интерфейс включения и выключения модуля

  • С помощью Deckhouse CLI (d8).

    Используйте команду d8 system module enable для включения модуля, или d8 system module disable для выключения модуля (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Пример включения модуля deckhouse-tools:

    d8 system module enable deckhouse-tools
    
  • С помощью ModuleConfig deckhouse-tools.

    Установите spec.enabled в true или false в ModuleConfig deckhouse-tools (создайте его, при необходимости).

    Пример манифеста для включения модуля deckhouse-tools:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: deckhouse-tools
    spec:
      enabled: true
    

Как настроить модуль…

Настроить модуль можно одним из следующих способов:

  • С помощью веб-интерфейса Deckhouse.

    В разделе «Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль deckhouse-tools, включите переключатель «Дополнительные настройки». Заполните необходимые поля формы на вкладке «Конфигурация», или укажите настройки модуля в формате YAML на вкладке «YAML», не включая секцию settings. Сохраните изменения.

    Пример:

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

    Вы также можете отредактировать объект ModuleConfig deckhouse-tools на вкладке «YAML» в окне настроек модуля («Система» → «Управление системой» → «Deckhouse» → «Модули», откройте модуль deckhouse-tools), указав версию схемы в параметре spec.version и необходимые параметры модуля в секции spec.settings.

  • С помощью Deckhouse CLI (d8) (требуется Deckhouse CLI (d8), настроенный на работу с кластером).

    Отредактируйте существующий ModuleConfig deckhouse-tools (подробнее о настройке Deckhouse читайте в документации), выполнив следующую команду:

    d8 k edit mc deckhouse-tools
    

    Внесите необходимые изменения в секцию spec.settings. При необходимости укажите версию схемы в параметре spec.version. Сохраните изменения.

    Вы также можете создать файл манифеста ModuleConfig deckhouse-tools, используя пример ниже. Заполните секцию spec.settings необходимыми параметрами модуля. При необходимости укажите версию схемы в параметре spec.version.

    Примените манифест с помощью следующей команды (укажите имя файла манифеста):

    d8 k apply -f <FILENAME>
    

    Пример файла манифеста ModuleConfig deckhouse-tools:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: deckhouse-tools
    spec:
      version: 1
      enabled: true
      settings: # Параметры модуля из раздела "Параметры" ниже.
    

Параметры

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

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

      Параметры для аутентификации и авторизации доступа к веб-интерфейсу модуля.

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

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

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

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

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

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

        Внимание! Эти группы необходимо добавить в соответствующее поле в конфигурации DexProvider, если этот модуль используется вместе с модулем user-authn.

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

        Примеры:

        allowedUserGroups:
        - admin
        - users
        
        allowedUserGroups: []
        
      • settings.auth.externalAuthentication
        объект

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

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

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

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

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

          Пример:

          authSignInURL: https://$host/dex-authenticator/sign_in
          
        • settings.auth.externalAuthentication.authURL
          строка

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

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

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

          Пример:

          authURL: https://deckhouse-tools-dex-authenticator.d8-system.svc.cluster.local/dex-authenticator/auth
          
    • 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
        объект

        Настройки для cert-manager.

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

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

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

          Пример:

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

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

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

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

          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-контроллера веб-интерфейса модуля.

      Опциональный параметр, по умолчанию используется глобальное значение 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 будет определяться автоматически.

      Пример:

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

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

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

      Пример:

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