Доступно в редакциях: EE
Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки
Требования
К версии Deckhouse: 1.72 и выше.
Конверсии
Модуль настраивается с помощью ресурса ModuleConfig, схема которого содержит номер версии. При применении в кластере старой версии схемы ModuleConfig выполняются автоматические преобразования. Чтобы обновить версию схемы ModuleConfig вручную, необходимо последовательно для каждой версии выполнить следующие действия:
-
Обновление из версии 1 в 2:
Замените
.gc.skipThresholdна.gc.timeout.
Параметры
Версия схемы: 2
-
-
объект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 * * 1schedule: 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: 30mtimeout: 1htimeout: 2h30m
-
-
объектsettings.https
Режим использования HTTPS для пользовательского хранилища образов.
Данный параметр полностью перекрывает настройки
global.modules.https.Примеры:
customCertificate: secretName: foobar mode: CustomCertificatecertManager: clusterIssuerName: letsencrypt mode: CertManager-
объектsettings.https.certManager
По умолчанию:
{}-
строкаsettings.https.certManager.clusterIssuerNameClusterIssuer для создания сертификата пользовательского хранилища образов.
По умолчанию:
letsencrypt
-
-
объектsettings.https.customCertificate
По умолчанию:
{}-
строкаsettings.https.customCertificate.secretName
Имя секрета в
d8-system, содержащего TLS-сертификат хранилища образов.Секрет должен иметь формат kubernetes.io/tls.
По умолчанию:
false
-
-
строкаsettings.https.mode
Режим работы HTTPS:
Disabled— доступ возможен только по HTTP. Внимание! Этот режим не поддерживается. Для правильной работы модуля требуется HTTPS. Если HTTPS отключен, доступ к пользовательскому хранилищу образов будет недоступен.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: - ReadWriteOnceaccessModes: - ReadWriteMany-
строкаsettings.persistence.accessModes.Элемент массива
Допустимые значения:
ReadWriteOnce,ReadWriteMany
-
-
строкаsettings.persistence.name
Имя PersistentVolumeClaim.
Будьте осторожны: изменение этого поля приведет к созданию нового PersistentVolumeClaim. Старый PersistentVolumeClaim останется в неймспейсе и его необходимо будет удалить вручную, если он больше не нужен.
По умолчанию:
registryДлина:
1..63Шаблон:
^[a-z0-9]([-a-z0-9]*[a-z0-9])?$Примеры:
name: registryname: registry-hddname: registry-network-ssd-2 -
строкаsettings.persistence.size
Размер диска PersistentVolumeClaim.
Минимально допустимое значение — 1Gi. Укажите желаемый размер диска. При необходимости вы можете увеличивать размер позже.
По умолчанию:
10GiШаблон:
^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$Примеры:
size: 10Gisize: 1500Mi -
строкаsettings.persistence.storageClass
Имя StorageClass, который будет задан при инициализации PersistentVolumeClaim.
Если это поле опущено, будет использоваться StorageClass существующего PersistentVolumeClaim. Если PersistentVolumeClaim ещё нет, будет использоваться либо глобальный
StorageClass, либоglobal.discovery.defaultStorageClass. Поле неизменяемое, для изменения необходимо создать новый PersistentVolumeClaim.Для изменения параметра перейдите в раздел «Как создать новый PVC?».
Примеры:
storageClass: ceph-ssdstorageClass: network-hddstorageClass: network-ssd
-
-
объектsettings.usersПараметр устарелНастройки авторизации пользователей в пользовательское хранилище образов.
По умолчанию:
{}Примеры:
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-хеш пароля пользователя для доступа к пользовательскому хранилищу образов.
Для генерации воспользуйтесь командой
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: pathsubPath: path-*subPath: path/*subPath: '*'subPath: '*/*'
-
-
-
-