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

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

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

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

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

Чтобы явно включить или выключить модуль deckhouse-tools, установите spec.enabled в true или false в ModuleConfig/deckhouse-tools (создайте, при необходимости), или воспользуйтесь командой deckhouse-controller module в поде d8-system/deckhouse.

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

  • с помощью ресурса ModuleConfig:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: deckhouse-tools
    spec:
      enabled: true
    
  • с помощью команды deckhouse-controller (требуется kubectl, настроенный на работу с кластером):

    kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module enable deckhouse-tools
    

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

  • с помощью ресурса ModuleConfig:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: deckhouse-tools
    spec:
      enabled: false
    
  • с помощью команды deckhouse-controller (требуется kubectl, настроенный на работу с кластером):

    kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module disable deckhouse-tools
    

Чтобы настроить модуль, используйте custom resource ModuleConfig с именем deckhouse-tools (подробнее о настройке Deckhouse…).

Пример ресурса ModuleConfig/deckhouse-tools для настройки модуля:

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

Параметры

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

  • auth
    объект

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

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

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

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

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

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

      Примеры:

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

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

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

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

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

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

        Пример:

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

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

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

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

        Пример:

        authURL: https://deckhouse-tools-dex-authenticator.d8-system.svc.cluster.local/dex-authenticator/auth
        
  • https
    объект

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

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

    Примеры:

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

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

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

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

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

        Пример:

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

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

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

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

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

    • 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

  • ingressClass
    строка

    Класс Ingress-контроллера веб-интерфейса модуля.

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

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

  • nodeSelector
    объект

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

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

    Пример:

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

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

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

    Пример:

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