Стадия жизненного цикла модуля: Общедоступная версия
У модуля есть требования для установки
v0.3.24
Дата релиза: 2026-09-14
Обслуживающий релиз: модуль пересобран тулчейном Go 1.27.1 на базовых образах v2.1.17, поведение не меняется.
Ключевые изменения
Изменения в этом релизе:
- Все компоненты модуля собраны с Go 1.27.1 на базовых образах v2.1.17. Поведение модуля, его ресурсы и настройки не меняются.
Рекомендации по обновлению
Перед обновлением учтите следующее:
- Обновление не требует действий руками. Ресурсы, настройки модуля и существующие тома не затрагиваются, поды контроллера и узлов только перезапускаются на пересобранных образах.
v0.3.23
Дата релиза: 2026-09-09
Модуль научился сам устанавливать стек iSCSI на узлы, репозитории которых его не дают, позволяет ресурсу HuaweiStorageClass задать долю тома ext4, остающуюся суперпользователю, и отдаёт метрики контроллера.
Ключевые изменения
Изменения в этом релизе:
- Узел, у которого в репозиториях нет
open-iscsiиmultipath-tools, больше не остаётся непригодным: модуль разворачивает на нём собственный образ-пакет и запускает демоны из него. - Том с ext4 больше не удерживает 5 % своего объёма под суперпользователя; вернуть себе долю можно аннотацией на ресурсе
HuaweiStorageClass. - Контроллер модуля отдаёт метрики, и Prometheus допущен до их сбора.
Новый функционал
В этом релизе добавлено:
- Узел, который не может установить
open-iscsiиmultipath-toolsиз своих репозиториев, получает их от модуля: ресурсNodeGroupConfigurationраспаковывает образiscsi-toolsмодуля в/var/lib/deckhouse/sds/csi-huaweiи запускаетd8-csi-huawei-iscsid.serviceиd8-csi-huawei-multipathd.service. Пакеты самого узла остаются предпочтительным путём, и узел, на котором они есть, модуль не трогает. - Аннотация
storage.deckhouse.io/ext4-reserved-percentна ресурсеHuaweiStorageClassзадаёт долю тома, удерживаемую под суперпользователя: целое число процентов от 0 до 50. Она действует только на файловые системы семейства ext, класс сfsType: xfsеё игнорирует, а при некорректном значенииHuaweiStorageClassостаётся сReady=Falseи причиной в статусе, вместо того чтобы позже сломать создание тома. - Контроллер модуля отдаёт метрики через kube-rbac-proxy: число и длительность реконсиляций, глубину очереди, задержки client-go, вместе с ресурсом ServiceMonitor для Prometheus. Порты настраиваются параметрами модуля
controllerMetricsPortиcontrollerMetricsProxyPort.
Улучшения
В этом релизе улучшено:
- Когда СХД отказывается создать том, событие
ProvisioningFailedтеперь несёт сообщение и рекомендацию, которые вернул массив, а не только числовой код ошибки DeviceManager. - Строки лога контроллера содержат поля парами ключ-значение и называют компонент, из которого пришли, вместо префикса внутри текста сообщения.
Исправления
В этом релизе исправлено:
- Prometheus не мог собирать метрики контроллера модуля: стоящему перед ними kube-rbac-proxy не было позволено создавать
TokenReviewиSubjectAccessReview, поэтому каждый сбор отвергался, а цель оставалась недоступной. - Узел мог остаться с
csi-nodeвCrashLoopBackOffи без драйвера в своём объектеCSINode, из-за чего тома на нём не подключались. Проба liveness контейнера узла смотрела на порт, который держит соседний контейнер-регистратор, поэтому выход регистратора уводил за собой и драйвер.
Рекомендации по обновлению
Перед обновлением учтите следующее:
- Изменение резерва ext4 под суперпользователя применяется к томам, созданным после обновления; уже существующие файловые системы сохраняют тот резерв, с которым были созданы. Руками делать ничего не нужно, а классу, которому резерв нужен, требуется аннотация.
- Метрики контроллера начинают собираться после того, как обновление пересоздаст поды модуля. Алерт
TargetDown, поднятый на контроллер модуля, гаснет сам.
Документация
Изменения в документации:
- Два новых раздела FAQ: что произойдёт, если репозитории узла не могут предоставить стек iSCSI, и сколько места тома резервируется под суперпользователя.
Зависимости
Обновления зависимостей:
deckhouse_lib_helm:1.72.18→1.72.22- Приносит исправление пробы liveness для csi-node и контракт RBAC для прокси метрик.
v0.3.22
- Перед монтированием уже отформатированного тома выполняется проверка файловой системы ext2/3/4 (e2fsck -p): исправимые ошибки устраняются автоматически, том с неустранимыми ошибками больше не монтируется до ручного восстановления
- В FAQ добавлена процедура восстановления тома, который не монтируется из-за ошибок файловой системы
- Обновление базовых образов до v2.1.5, Go до 1.26.6 и lib-helm до 1.72.17
- Внутренние изменения в сборке модуля
v0.3.21
- Исправление: релизный образ больше не собирается из кэша с устаревшим changelog.yaml — зависимости git-маппинга привязаны к стадии install, на которой файл и копируется
- Обновление базовых образов до v2.1.4
- Внутренние изменения в сборке модуля
v0.3.20
- Исправление: контроллеру выданы права patch на events вместо list — повторная запись события больше не отклоняется по правам
v0.3.19
- Исправление: multipath перестаёт удерживать I/O после удаления последнего пути к LUN (добавлена настройка flush_on_last_del) — устраняет зависание узла в NotReady
- В документации убран устаревший пример volumeBindingMode в HuaweiStorageClass, добавлен пример подключения по Fibre Channel
- Обновление базовых образов до v2.1.2, Go до 1.26.6 и lib-helm до 1.72.14
- Внутренние изменения в сборке модуля
v0.3.18
- HuaweiStorageClass и HuaweiStorageConnection публикуют status.conditions и status.observedGeneration, добавлена колонка Ready. Поле status.phase сохраняет прежний набор значений, но теперь вычисляется из условия Ready
- Обновление базовых образов до v1.3.25, Go 1.26.5 и lib-helm до 1.72.13
v0.3.17
- Исправление: устранён сбой запуска pod’а csi-node на узлах с containerd v2 — добавлено монтирование hostPath /sys/fs/cgroup
v0.3.16
- Модуль snapshot-controller больше не обязательная зависимость: VolumeSnapshotClass создаётся только при наличии API snapshot.storage.k8s.io
- Обновление базовых образов, Go 1.26.5 и lib-helm до 1.72.12
- Устранена уязвимость в gRPC (GHSA-hrxh-6v49-42gf)
- Внутренние изменения в сборке модуля
v0.3.15
- Обновление базовых образов, Go 1.26.5 и lib-helm до 1.72.10
- Внутренние изменения в сборке модуля
v0.3.14
- Исправление: устранён циклический перезапуск pod’а csi-node, вызванный синхронной очисткой устаревших устройств
- Исправление: секреты доступа к registry Deckhouse теперь ограничены активным источником образов
- Обновление базовых образов, Go 1.26.5 и lib-helm до 1.72.9
- Внутренние изменения в сборке модуля
v0.3.13
- Добавлено автоматическое восстановление недоступных бэкендов хранилища Huawei
- При пробросе меток из HuaweiStorageClass в StorageClass теперь исключаются метки с заданными игнорируемыми префиксами
- Обновление базовых образов и lib-helm до 1.72.0
v0.3.12
- Метки из HuaweiStorageClass теперь пробрасываются в управляемый StorageClass Kubernetes
- Обновление базовых образов, Go 1.25.10 и lib-helm 1.71.12
v0.3.11
- Внутренние изменения в структуре и сборке модуля
v0.3.10
- Обновление базовых образов, Go 1.25.10 и lib-helm 1.71.11
- Внутренние изменения в сборку модуля
v0.3.9
- Исправления в структуру модуля
v0.3.8
- Обновлена документация (ревью, исправлены битые ссылки)
- Изменения в CI: DistroPackagesProxy и env прокси в werf, доработки CVE-сканов (role_name, checkout)
- Добавлены кластерные роли user-authz в шаблонах
v0.3.7
- Установка пакетов в NodeGroupConfiguration больше не приводит к падению скрипта при ошибках
v0.3.6
- Добавлены недостающие точки монтирования в distroless-образах csi-huawei
- Обновление базовых образов, Go и lib-helm (фикс CVE)
- Уточнения в документации
v0.3.5
- Добавлен список поддерживаемых СХД
v0.3.4
- Изменения для distroless (полный отказ от nsenter, где это возможно)
v0.3.3
- Правки регрессии при ресайзе тома, возникшей в результате перехода на distroless (исправлено слишком узкое монтирование /sys с хоста)
v0.3.2
- Правки регрессии при перемонтировании тома, возникшей в результате перехода на distroless (в некоторых случаях не совпадаю WWN у томов)
v0.3.1
- Правки регрессии при перемонтировании тома, возникшей в результате перехода на distroless (в некоторых случаях не совпадаю WWN у томов)
v0.3.0
- Перевод модуля в distroless (с активным патчингом оригинального CSI, для этого не приспособленного)
- Правки в документации
- Обновление базовых образов и версии golang
- Обновление хуков, работающих при удалении модуля
- Отключен запрос Capacity со стороны k8s (CSI не поддерживает выдачу Capacity)
v0.2.9
- Исправления логики работы с volume snapshots
v0.2.8
- Правки в документацию
- Правки в манифестах
- Исправления логики работы с volume snapshots
- Обновление базовых образов
v0.2.7
- Обновлена версия базовых образов
v0.2.6
- Обновлена версия Go до 1.24.9
- Обновлена lib-helm до deckhouse_lib_helm-1.64.1
v0.2.5
- Добавлены файлы release notes
v0.2.4
- Добавлена информация о необходимости snapshot-controller для работы модуля
- Добавлен readonlyRootFilesystem для большей безопасности модуля
v0.2.3
- Добавлена зависимость от snapshot-controller
v0.2.2
- Добавлена инструкция по использованию СХД Huawei в нескольких Kubernetes кластерах
v0.2.1
- Обновление CSI до версии v4.11.0
- Фикс CVE
- Добавлен хук, удаляющий ненужные ресурсы, остающиеся после удаления модуля
v0.1.1
- Обновление golang на 1.23.6
- Убран статус Experimental
v0.1.0
- Стартовый релиз, базовая функциональность работает