Стадия жизненного цикла модуля: Preview
Доступно в редакциях: EE
Требования
К версии 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 для payload registry. Данный параметр полностью перекрывает настройки
global.modules.https.Примеры:
customCertificate: secretName: foobar mode: CustomCertificatecertManager: clusterIssuerName: letsencrypt mode: CertManager-
объектsettings.https.certManager
По умолчанию:
{}-
строкаsettings.https.certManager.clusterIssuerNameClusterIssuer для создания сертификата 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: - ReadWriteOnceaccessModes: - 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: 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Настройки авторизации пользователей в 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: pathsubPath: path-*subPath: path/*subPath: '*'subPath: '*/*'
-
-
-
-