Стадия жизненного цикла модуля: Экспериментальная версия

У модуля есть требования для установки

Перед включением модуля необходимо разрешить использование экспериментальных модулей в ModuleConfig deckhouse. Для этого установите параметр allowExperimentalModules в true.

v0.1.1

Дата релиза: 2026-10-22

system-s3 публикуется для редакций CE, SE и SE+, а не только для EE и FE.

Ключевые изменения

Изменения в этом релизе:

  • В кластерах на CE, SE и SE+ модуль можно включить и пользоваться SystemBucket; до сих пор он публиковался только для EE и FE. Во всех редакциях модуль одинаковый.

v0.1.0

Дата релиза: 2026-10-21

Первый релиз system-s3 — собственного объектного хранилища S3 платформы: компоненты Deckhouse получают бакеты с квотами и короткоживущие ключи, не дожидаясь отдельной системы хранения.

Ключевые изменения

Изменения в этом релизе:

  • SystemBucket в namespace d8-* или kube-* получает бакет с квотой по месту и по числу объектов и ConfigMap с параметрами подключения; компонент обменивает токен своего ServiceAccount на эндпоинте STS на ключи, которые живут от 15 до 30 минут, с правами через обычный RBAC.
  • Хранилище — кластер Garage 2.4.1: он создаётся с первым SystemBucket, работает с одной репликой или с тремя в отказоустойчивом режиме, переезжает на другой StorageClass со сверкой каждого объекта и растит тома вместе с бакетами.
  • Состояние хранилища видно в условиях Module/system-s3, метриках, алертах и двух дашбордах Grafana.

Новый функционал

В этом релизе добавлено:

  • SystemBucket (storage.deckhouse.io/v1alpha1): spec.size — квота бакета, квота по числу объектов выводится из неё; spec.bucketName необязателен. Занятое место, квоты и готовность — в status. Удаление SystemBucket удаляет бакет вместе с объектами.
  • Доступ выдаётся на виртуальные подресурсы systembuckets/read и systembuckets/write; долгоживущие ключи нигде не записываются, у бакета одновременно не больше 50 неистёкших ключей.
  • Настройки модуля storageClass и highAvailability: если они не заданы, берутся global.modules.storageClass (или StorageClass кластера по умолчанию) и global.highAvailability (или то, отказоустойчив ли control plane). Переход между одной и тремя репликами идёт на тех же данных; смена StorageClass переносит хранилище в новый кластер Garage, а запись приостанавливается только на время переключения.
  • Реплики работают на узлах с ролью node-role.deckhouse.io/system-s3, если такие есть в кластере, иначе на системных узлах, иначе на мастерах.
  • Размер томов считается из суммы квот всех бакетов с запасом под метаданные; когда том реплики почти заполнен, он растёт на 5 ГиБ.
  • Условия модуля StorageReady, PlacementReady, CapacityReady, ReplicationReady и MigrationReady описывают хранилище, размещение, ёмкость и идущую операцию, во время переезда — с прогрессом копирования.
  • Метрики контроллера, реплик Garage и TLS-терминатора перед ними, в том числе трафик, запросы и ошибки по бакетам; алерты на недоступное или деградировавшее хранилище, заполненные бакеты и тома, отказы в выдаче ключей, застрявшую фоновую работу и истекающие сертификаты; дашборды Grafana System S3 и System S3 Garage.
  • Выключение модуля останавливает хранилище и сохраняет данные и сертификаты; namespace освобождается, чтобы пользователь мог удалить его вместе с данными. После повторного включения хранилище возвращается с данными.