Стадия жизненного цикла модуляGeneral Availability

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

v0.2.23

Дата релиза: 2026-09-15

Модуль по умолчанию пишет логи на уровне INFO вместо DEBUG, поэтому установка, в которой уровень не выбирали, перестаёт получать отладочный вывод от контроллера.

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

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

  • Значение logLevel по умолчанию теперь INFO, а не DEBUG. Там, где уровень не задавали в конфигурации модуля, контроллер и его валидирующий webhook после обновления становятся заметно тише; вернуть прежнюю подробность можно, указав logLevel: DEBUG.

Улучшения

В этом релизе улучшено:

  • Значение logLevel в конфигурации модуля по умолчанию теперь INFO. Настройка доходит до контроллера и до валидирующего webhook, который живёт в том же поде, поэтому прежний умолчательный DEBUG означал, что каждая установка, где настройку не трогали, работала на отладочной подробности и платила за это объёмом логов. Явно указанный в ModuleConfig logLevel соблюдается ровно как раньше, каким бы он ни был.

Рекомендации по обновлению

Перед обновлением учтите следующее:

  • В конфигурации модуля делать ничего не нужно. Там, где logLevel не задан, компоненты поднимутся на уровне INFO по мере раскатки пода контроллера при обновлении; там, где задан, уровень останется прежним. Чтобы сохранить прежнее поведение, укажите logLevel: DEBUG явно.

v0.2.22

Дата релиза: 2026-09-09

Метрики контроллера, объявленные в предыдущем релизе, наконец действительно собираются: стоявший перед ними kube-rbac-proxy не мог авторизовать ни один сбор.

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

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

  • Prometheus собирает метрики контроллера — чего ни разу не получалось с момента их появления в предыдущем релизе. У стоящего перед ними kube-rbac-proxy не было прав создавать TokenReview и SubjectAccessReview, которыми авторизуется каждый сбор, поэтому он отклонял их все: up == 0 для задания csi-s3-controller и TargetDown, который никогда не гас.

Исправления

В этом релизе исправлено:

  • Теперь kube-rbac-proxy перед метриками контроллера привязан к ClusterRole d8:rbac-proxy и может авторизовать сбор. Без этой привязки он отказывал в каждом сборе, и единственным симптомом была недоступная цель: до Prometheus не доходила ни одна метрика контроллера модуля — ни число и длительность реконсиляций, ни глубина очереди задач, ни задержки client-go, — а TargetDown горел всё время, пока модуль установлен.

Рекомендации по обновлению

Перед обновлением учтите следующее:

  • В конфигурации модуля делать ничего не нужно. Горящий TargetDown для задания csi-s3-controller погаснет сам, как только поднимется новый под контроллера и пройдёт первый сбор.

v0.2.21

Дата релиза: 2026-09-04

Контроллер модуля отдаёт метрики Prometheus — через kube-rbac-proxy в своём же поде — и пишет структурированные логи; релиз модуля описывается разделами и на двух языках.

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

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

  • Метрики контроллера собираются Prometheus без всякой настройки: ServiceMonitor в d8-monitoring снимает их под job csi-s3-controller, поэтому становятся видны число и длительность reconcile-циклов, глубина рабочей очереди (workqueue) и задержки обращений к API через client-go.
  • Контроллер пишет структурированные логи — имя компонента и поля вида «ключ-значение» вместо префиксов в духе [main], — поэтому всё, что разбирает его строки лога, нужно поправить.
  • Релиз описывается разделами — краткое описание, главное, новые возможности, улучшения, исправления — по-английски и по-русски, и консоль показывает описание на языке читателя.

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

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

  • Контроллер теперь отдаёт метрики.

Улучшения

В этом релизе улучшено:

  • Контроллер логирует через общий логгер storage-модулей: каждая строка несёт компонент, из которого она пришла, и свои поля как «ключ-значение». Настройка settings.logLevel работает точно как раньше (ERROR, WARN, INFO, DEBUG) — изменилась форма строки, а не уровень.
  • Release notes пишутся по локалям в .release-notes/<тег>.yaml и <тег>.ru.yaml с разделами summary, highlights, new_features, improvements, fixes, security, breaking, upgrade_notes, known_issues, docs и dependencies. В кластер попадают обе локали; релизы, выпущенные до этого, остаются в прежнем плоском формате и отображаются на той же странице точно так же, как раньше.

Исправления

В этом релизе исправлено:

  • Релизный тег без release notes публиковал пустой changelog.yaml, оставляя ModuleRelease.spec.changelog пустым при зелёной сборке. Теперь такой тег роняет сборку.

Рекомендации по обновлению

Перед обновлением учтите следующее:

  • В конфигурации модуля делать ничего не нужно.

v0.2.20

  • Исправление: контроллеру выданы права patch на events вместо list — повторная запись события больше не отклоняется по правам
  • Обновление базовых образов до v2.1.2, Go до 1.26.6 и lib-helm до 1.72.14

v0.2.19

  • S3StorageClass публикует status.conditions и status.observedGeneration, добавлена колонка Ready. Поле status.phase сохраняет прежний набор значений, но теперь вычисляется из условия Ready
  • Обновление базовых образов до v1.3.25, Go 1.26.5 и lib-helm до 1.72.13

v0.2.18

  • Обновление базовых образов, Go 1.26.5 и lib-helm до 1.72.12
  • Устранены уязвимости в сторонних зависимостях
  • Внутренние изменения в сборке модуля и CI, добавлен набор e2e-тестов

v0.2.17

  • Обновление базовых образов, Go 1.26.5 и lib-helm до 1.72.9
  • Внутренние изменения в сборке модуля

v0.2.16

  • Исправлено формирование секрета доступа к registry (deckhouse-registry): теперь в него попадают данные авторизации только активного источника образов
  • Обновление базовых образов container-base до v1.1.8, Go 1.26.4 и lib-helm до 1.72.4

v0.2.15

  • При пробросе меток из S3StorageClass в StorageClass теперь исключаются метки с заданными игнорируемыми префиксами
  • Обновление базовых образов и lib-helm до 1.72.0

v0.2.14

  • Метки из S3StorageClass теперь пробрасываются в управляемый StorageClass Kubernetes
  • Обновление базовых образов, Go 1.25.10 и lib-helm 1.71.12

v0.2.13

  • Добавлен параметр dataNodes.nodeSelector для управления размещением DaemonSet csi-node; пустой объект отклоняется валидирующим вебхуком
  • Добавлен контроллер, синхронизирующий значение nodeSelector с DaemonSet csi-node

v0.2.12

  • Внутренние изменения в структуре и сборке модуля

v0.2.11

  • Обновление базовых образов, Go 1.25.10 и lib-helm 1.71.11
  • Внутренние изменения в сборку модуля

v0.2.10

  • Исправления в структуру модуля

v0.2.9

  • Изменения в CI: DistroPackagesProxy и env прокси в werf, доработки CVE-сканов (role_name, checkout)
  • Добавлены кластерные роли user-authz в шаблонах

v0.2.8

  • Добавлены инфраструктура и недостающие точки монтирования для distroless-образов
  • Обновление базовых образов, Go и lib-helm (фикс CVE)
  • Документация по параметрам конфигурации модуля

v0.2.7

  • Обновление базовых образов и версии golang
  • Обновление хуков, работающих при удалении модуля
  • Отключен запрос Capacity со стороны k8s (CSI не поддерживает выдачу Capacity)
  • Обновление версии k8s-csi-s3 до 0.43.3

v0.2.6

  • Переработка манифестов модуля

v0.2.5

  • Обновлена версия базовых образов до v0.5.46
  • Обновлена версия Go до 1.24.11
  • Исправлены названия полей S3StorageClass в примерах документации
  • Исправлены синтаксические ошибки YAML в примерах FAQ
  • Объединены controller и webhooks в один deployment
  • Добавлен режим HA для CSI контроллера

v0.2.4

  • Обновлена версия базовых образов

v0.2.3

  • Обновлена версия Go до 1.24.9
  • Обновлена lib-helm до deckhouse_lib_helm-1.64.1

v0.2.2

  • Добавлены файлы release notes

v0.2.1

  • Добавлен readonlyRootFilesystem для большей безопасности модуля

v0.2.0

  • Рефакторинг модуля
  • Сервисный аккаунт изменен на “csi”

v0.1.5

  • Небольшой фикс документации

v0.1.4

  • Рефакторинг модуля без изменения функциональности для конечного пользователя
  • Добавлены требования к версии Deckhouse (>= 1.67)

v0.1.3

  • Добавлена поддержка пользовательских CA для сертификатов
  • Обновлен GeeseFS до версии 0.43.0