Модуль не включен по умолчанию в каком-либо наборе модулей.

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

Обратите внимание, что при установке Deckhouse для явного включения/отключения и настройки модуля используется параметр configOverrides ресурса InitConfiguration, а не ModuleConfig.

Чтобы явно включить или выключить модуль cilium-hubble при установке Deckhouse, укажите ciliumHubbleEnabled: true или ciliumHubbleEnabled: false в секции configOverrides.

Чтобы задать настройки модуля при установке Deckhouse, используйте секцию ciliumHubble параметра configOverrides.

Чтобы явно включить или выключить модуль cilium-hubble, установите spec.enabled в true или false в ModuleConfig/cilium-hubble.

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

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

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

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: cilium-hubble
spec:
  enabled: false

Модуль останется отключенным вне зависимости от параметра ciliumHubbleEnabled:, если не включен модуль cni-cilium.

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

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

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

Параметры

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

  • authобъект

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

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

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

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

    • auth.externalAuthenticationобъект

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

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

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

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

        Пример:

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

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

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

        Пример:

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

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

      Пример:

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

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

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

  • httpsобъект

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

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

    Примеры:

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

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

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

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

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

        Примеры:

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

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

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

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

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

    • 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

  • nodeSelectorобъект

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

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

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

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

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

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

Аутентификация

По умолчанию используется модуль user-authn. Также можно настроить аутентификацию через externalAuthentication (см. ниже). Если эти варианты отключены, то модуль включит basic auth со сгенерированным паролем.

Посмотреть сгенерированный пароль можно командой:

kubectl -n d8-system exec deploy/deckhouse -- deckhouse-controller module values cilium-hubble -o json | jq '.ciliumHubble.internal.auth.password'

Чтобы сгенерировать новый пароль, нужно удалить секрет:

kubectl -n d8-cni-cilium delete secret/hubble-basic-auth

Внимание! Параметр auth.password больше не поддерживается.