Доступно в редакциях:  EE

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

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

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

    Пример:

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

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

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

    d8 system module enable payload-registry
    
  • С помощью ModuleConfig payload-registry.

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

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

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

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

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

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

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

    Пример:

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

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

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

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

    d8 k edit mc payload-registry
    

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

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

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

    d8 k apply -f <FILENAME>
    

    Пример файла манифеста ModuleConfig payload-registry:

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

Требования

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

Конверсии

Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия:

  • Обновление из версии 1 в 2:

    Замените .gc.skipThreshold на .gc.timeout.

Параметры

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

  • settings
    объект
    • settings.gc
      объект
      Настройки сборки мусора.
      • settings.gc.enabled
        булевый
        Включить периодическую сборку мусора.

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

      • settings.gc.schedule
        строка

        Расписание в формате cron для запуска сборщика мусора. Поддерживаются предопределённые дескрипторы:

        • @yearly / @annually = 0 0 1 1 *
        • @monthly = 0 0 1 * *
        • @weekly = 0 0 * * 0
        • @daily = 0 0 * * *
        • @hourly = 0 * * * * Ссылка для проверки: https://crontab.guru

        Примеры:


        schedule: 0 20 * * 1
        
        schedule: 5 3 * * *
        
        schedule: 0 2 * * *
        
        schedule: '@daily'
        
      • settings.gc.timeout
        строка

        Определяет временной интервал, в течение которого задача сборщика мусора должна быть выполнена. Если задача не запускается за указанный интервал — выполнение откладывается до следующего запланированного времени. Если задача выполняется дольше указанного интервала — она принудительно завершается. Для принудительного завершения значение timeout проставляется в Kubernetes задаче в поле spec.activeDeadlineSeconds.

        Если параметр пустой — ограничение по времени отключено (значение по умолчанию).

        Поддерживаемые единицы: h (часы), m (минуты), s (секунды). Минимально допустимое значение — 10 минут.

        Шаблон: ^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$

        Примеры:


        timeout: 30m
        
        timeout: 1h
        
        timeout: 2h30m
        
    • settings.https
      объект
      Режим использования HTTPS для payload registry. Данный параметр полностью перекрывает настройки global.modules.https.

      Примеры:


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

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

        • settings.https.certManager.clusterIssuerName
          строка
          ClusterIssuer для создания сертификата payload registry.

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

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

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

        • settings.https.customCertificate.secretName
          строка
          Имя секрета в d8-system, содержащего TLS-сертификат для payload registry Секрет должен иметь формат kubernetes.io/tls.

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

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

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

        • Disabled — доступ возможен только по HTTP. Внимание! Этот режим не поддерживается. Для правильной работы модуля требуется HTTPS. Если HTTPS отключен, доступ к payload registry будет недоступен.
        • CertManager — HTTPS с сертификатом от clusterIssuer, указанного в certManager.clusterIssuerName.
        • CustomCertificate — HTTPS с пользовательским сертификатом из d8-system.
        • OnlyInURI — внутри кластера HTTP, снаружи — TLS терминируется внешним балансировщиком. Все ссылки будут формироваться с https-схемой; балансировщик должен перенаправлять HTTP→HTTPS.

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

    • settings.persistence
      объект
      Параметры конфигурации PersistentVolumeClaim

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

      • settings.persistence.accessModes
        массив строк

        Режимы доступа к PersistentVolumeClaim. Поле не изменяемое, для изменения необходимо создать новый PersistentVolumeClaim.

        Для изменения параметра перейдите в раздел “Как создать новый PVC?”.

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

        Примеры:


        accessModes:
        - ReadWriteOnce
        
        accessModes:
        - ReadWriteMany
        
        • settings.persistence.accessModes.Элемент массива
          строка

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

      • settings.persistence.name
        строка
        Имя PersistentVolumeClaim. Будьте осторожны: изменение этого поля приведет к созданию нового PersistentVolumeClaim. Старый PersistentVolumeClaim останется в namespace и его необходимо будет удалить вручную, если он больше не нужен.

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

        Длина: 1..63

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

        Примеры:


        name: registry
        
        name: registry-hdd
        
        name: registry-network-ssd-2
        
      • settings.persistence.size
        строка
        Размер диска PersistentVolumeClaim. Минимально допустимое значение — 1Gi. Укажите желаемый размер диска. При необходимости вы можете увеличивать размер позже.

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

        Шаблон: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$

        Примеры:


        size: 10Gi
        
        size: 1500Mi
        
      • settings.persistence.storageClass
        строка

        Имя StorageClass, который будет задан при инициализации PersistentVolumeClaim. Если это поле опущено, будет использоваться StorageClass существующего PersistentVolumeClaim. Если PersistentVolumeClaim ещё нет, будет использоваться либо глобальный StorageClass, либо global.discovery.defaultStorageClass. Поле не изменяемое, для изменения необходимо создать новый PersistentVolumeClaim.

        Для изменения параметра перейдите в раздел “Как создать новый PVC?”.

        Примеры:


        storageClass: ceph-ssd
        
        storageClass: network-hdd
        
        storageClass: network-ssd
        
    • settings.users
      объект
      Настройки авторизации пользователей в payload registry.

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

      Примеры:


      username-1:
        passwordHash: $2y$10$gQvak.0k9BBUeH/je7n.y.cyNFc3YKyDti3L6DuZpy75drzb2wWK2
        projects:
        - access: FULL
          name: project-1
          subPath: path-*
        - access: READ
          name: project-1
          subPath: '*'
        - access: READ
          name: project-1
          subPath: '*/*'
        - access: FULL
          name: project-2
          subPath: test/*
      
      username-2:
        passwordHash: $2y$10$gQvak.0k9BBUeH/je7n.y.cyNFc3YKyDti3L6DuZpy75drzb2wWK2
      
      • settings.users.<KEY_NAME>
        объект
        <KEY_NAME> — имя параметра (ключ объекта).
        • settings.users.<KEY_NAME>.passwordHash
          строка

          Обязательный параметр

          bcrypt-хеш пароля пользователя для доступа к payload registry. Для генерации воспользуйтесь командой echo -n '${PASSWORD}' | htpasswd -BinC 10 "" | cut -d: -f2 | tr -d '\n'; echo.

          Пример:


          passwordHash: $2y$10$gQvak.0k9BBUeH/je7n.y.cyNFc3YKyDti3L6DuZpy75drzb2wWK2
          
        • settings.users.<KEY_NAME>.projects
          массив объектов

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

          • settings.users.<KEY_NAME>.projects.access
            строка
            Уровень доступа для указанного subPath: READ разрешает операции pull, FULL разрешает операции pull и push. FULL доступ предоставляется только в том случае, если пространство имён проекта существует в Kubernetes, иначе будет доступ READ.

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

          • settings.users.<KEY_NAME>.projects.name
            строка
            Имя проекта. Для FULL доступа имя проекта должно соответствовать пространству имён Kubernetes.

            Длина: 1..63

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

            Пример:


            name: project-1
            
          • settings.users.<KEY_NAME>.projects.subPath
            строка
            Конкретный путь или шаблон внутри проекта. Итоговый путь: projectName/subPath.

            Шаблон: ^([^/].*[^/]|[^/])$

            Примеры:


            subPath: path
            
            subPath: path-*
            
            subPath: path/*
            
            subPath: '*'
            
            subPath: '*/*'