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

Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки

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

Внимание. Включение и отключение модуля имеет особенности. Читайте подробнее в документации по настройке модуля.

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

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

    Пример:

    Интерфейс включения и выключения модуля
  • С помощью Deckhouse CLI (d8).

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

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

    d8 system module enable stronghold
  • С помощью ModuleConfig stronghold.

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

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

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

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

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

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

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

    Пример:

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

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

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

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

    d8 k edit mc stronghold

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

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

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

    d8 k apply -f <FILENAME>

    Пример файла манифеста ModuleConfig stronghold:

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

Как сменить канал обновлений модуля…

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

Требования

К версии Deckhouse: 1.72 и выше.

Параметры

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

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

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

      Для HA-конфигураций поддерживается автоматическое увеличение и уменьшение размера PVC.

      Для одноузловых конфигураций поддерживается только увеличение размера PVC.

      При изменении этого параметра убедитесь, что указанное значение будет достаточным для хранения данных Stronghold.

      Модуль extended-monitoring автоматически мониторит процент использования дискового пространства.

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

    • settings.enableAuditLog
      булевый
      Включает журнал аудита (функция доступна только в EE).

      Пример:


      enableAuditLog: true
      
    • settings.enableUserInterface
      булевый
      Включает пользовательский интерфейс.

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

      Пример:


      enableUserInterface: false
      
    • settings.https
      объект

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

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

      Примеры:


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

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

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

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

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

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

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

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

          Secret должен быть в формате TLS.

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

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

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

        • CertManager — Stronghold будет работать по HTTPS и заказывать сертификат с помощью ClusterIssuer, заданного в параметре certManager.clusterIssuerName;
        • CustomCertificate — Stronghold будет работать по HTTPS, используя сертификат из namespace d8-system;

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

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

    • settings.ingress
      объект

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

      • settings.ingress.class
        строка

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

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

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

        Пример:


        class: public
        
    • settings.inlet
      строка

      Способ реализации подключения к Stronghold.

      Поддерживаются следующие типы инлетов:

      • Ingress — доступ через контроллер ingress-nginx.

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

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

    • settings.license
      строка

      Лицензионный ключ Stronghold EE.

      Оставьте пустым, чтобы использовать Stronghold CE.

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

    • settings.management
      объект

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

      • settings.management.administrators
        массив объектов
        Список пользователей и групп, которые могут получить доступ к Stronghold как администраторы. Другие аутентифицированные пользователи будут получать доступ к Stronghold с политикой по умолчанию.

        Пример:


        administrators:
        - name: admins
          type: Group
        - name: security
          type: Group
        - name: manager@mycompany.tld
          type: User
        
        • settings.management.administrators.name
          строка
        • settings.management.administrators.type
          строка

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

      • settings.management.mode
        строка
        Включает автоинициализацию и автораспечатывание Stronghold. Токен root сохраняется в Kubernetes-секрете stronghold-keys.

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

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

        Пример:


        mode: Automatic
        
    • settings.nodeSelector
      объект

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

      Если значение не указано или указано false, Stronghold будет размещаться на control-plane узлах.

      Пример:


      node-role.kubernetes.io/stronghold: ''
      
    • settings.plugins
      массив объектов
      Список плагинов для загрузки в Stronghold. Каждый плагин проверяется по контрольной сумме SHA256.

      Пример:


      plugins:
      - ignoreFailure: false
        name: vault-plugin-secrets-github
        sha256: 72cb1f2775ee2abf12ffb725e469d0377fe7bbb93cd7aaa6921c141eddecab87
        url: https://github.com/martinbaillie/vault-plugin-secrets-github/releases/download/v2.3.2/vault-plugin-secrets-github-linux-amd64
      
      • settings.plugins.ca
        строка
        PEM-сертификат(ы) CA для проверки HTTPS-сервера для URL этого плагина. Если задано, доверяется только этот CA (не системные).
      • settings.plugins.ignoreFailure
        булевый
        Если true, ошибка загрузки или проверки этого плагина не останавливает запуск Stronghold, но функционал плагина не будет доступен.

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

      • settings.plugins.insecureSkipVerify
        булевый
        Если true, сертификат TLS сервера для URL этого плагина не проверяется.

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

      • settings.plugins.name
        строка
        Имя файла плагина после загрузки.
      • settings.plugins.sha256
        строка
        Контрольная сумма SHA256 файла. Загрузка отклоняется, если сумма не совпадает. Это заблокирует запуск Stronghold, если не указан параметр ignoreFailure.

        Шаблон: ^[a-fA-F0-9]{64}$

      • settings.plugins.url
        строка
        URL для загрузки бинарного плагина (http или https, домен, путь и имя файла). Если файл не доступен, это заблокирует запуск Stronghold, если не указан параметр ignoreFailure.

        Шаблон: ^https?://[a-zA-Z0-9][-a-zA-Z0-9.]*[a-zA-Z0-9](/[^/]+)*/[^/.]+$

    • settings.storageClass
      строка

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

      По умолчанию Stronghold хранит данные в local storage на master-узлах.

      При изменении этого параметра будет произведен поэтапный перенос данных Stronghold на новый StorageClass если используется HA конфигурация Stronghold.

      Для одноузловых конфигураций Stronghold этот параметр учитывается только при первом запуске Stronghold.

      Если вам нужно изменить StorageClass в одноузловой конфигурации Stronghold, вы можете сделать это через backup/restore и отключение/включение модуля. В этом случае не забывайте сохранить ключи распечатки (unseal keys), как это описано в документации.

      При изменении этого параметра убедитесь, что значение, указанное в diskSizeGigabytes, будет достаточным для хранения данных Stronghold.

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

      Примеры:


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

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

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

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