Стадия жизненного цикла модуля: Экспериментальная версия
У модуля есть требования для установки
Deckhouse Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
MindUstorStorageClass
Область: Cluster
Версия: v1alpha1
Описание StorageClass Kubernetes для томов uStor.
Модуль создаёт StorageClass с тем же именем и поддерживает его в соответствии со спецификацией. Лейблы ресурса копируются в StorageClass, кроме лейблов, ключи которых начинаются с префикса из параметра модуля storageClassLabelIgnoredPrefixes или из встроенного списка. StorageClass драйвера нельзя создавать, изменять или удалять вручную; вручную можно менять только аннотации.
-
объектspec
-
строкаspec.connectionName
Обязательный параметр
Имя MindUstorStorageConnection, через которое создаются тома.
Подключение должно быть в фазе
Created, иначе ресурс получает статусFailed.Минимальная длина:
1 -
строкаspec.fsTypeФайловая система, в которую форматируются тома.
По умолчанию:
ext4Допустимые значения:
ext4,xfs -
строкаspec.pool
Обязательный параметр
Имя пула uStor, в котором создаются тома.Минимальная длина:
1 -
строкаspec.reclaimPolicy
Обязательный параметр
Политика освобождения (reclaim policy) StorageClass:
- Delete: образ uStor удаляется вместе с PersistentVolume;
- Retain: образ сохраняется после удаления PersistentVolume.
Допустимые значения:
Delete,Retain -
строкаspec.volumeBindingMode
Режим привязки томов (volume binding mode) StorageClass:
- Immediate: том создаётся сразу вместе с PersistentVolumeClaim;
- WaitForFirstConsumer: том создаётся, когда запланирован под, который его использует.
В обоих режимах под, использующий том, размещается только на узлах, где работает node plugin драйвера, то есть на узлах, выбранных параметром
dataPlane.nodeSelectorподключения: StorageClass и PersistentVolume ограничены этими узлами через топологию.По умолчанию:
ImmediateДопустимые значения:
Immediate,WaitForFirstConsumer
-
-
объектstatusТекущее состояние StorageClass.
-
массив объектовstatus.conditionsПоследние наблюдения за состоянием ресурса. Тип условия:
Ready.-
строкаstatus.conditions.lastTransitionTimeВремя последней смены состояния условия. Не меняется, если изменились только причина или сообщение.
-
строкаstatus.conditions.messageПонятное человеку пояснение текущего состояния.
Максимальная длина:
32768 -
целое числоstatus.conditions.observedGenerationЗначение
metadata.generation, по которому выставлено условие.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonМашиночитаемая причина текущего состояния, пригодная для фильтрации логов и алертов.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusТекущее состояние условия.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
ReadyравноTrue, когда StorageClass создан и соответствует спецификации, иFalse, когда согласование завершилось ошибкой. Условия нет, пока контроллер ни разу не обработал ресурс.Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
целое числоstatus.observedGenerationЗначение
metadata.generation, которое контроллер обработал последним. Если оно отстаёт отmetadata.generation, контроллер ещё не обработал последнюю спецификацию, и условия описывают предыдущую. -
строкаstatus.phase
Сводка по условию Ready:
- Created: StorageClass создан и соответствует спецификации;
- Failed: StorageClass отсутствует или не соответствует спецификации; подробности в
reason.
Допустимые значения:
Failed,Created -
строкаstatus.reasonПовторяет сообщение условия Ready.
-
MindUstorStorageConnection
Область: Cluster
Версия: v1alpha1
Подключение к кластеру uStor: его API управления, с которым работает CSI-контроллер, и сеть данных, через которую клиент uStor на узлах обслуживает тома.
Модуль обслуживает один кластер uStor. Если ресурсов несколько, используется самый старый, остальные получают статус Failed.
Не удаляйте используемое подключение, пока существуют тома, созданные через него. Если подключений не осталось, CSI-контроллер удаляется. Если есть другое подключение, используемым становится оно.
-
объектspec
-
объектspec.controlPlane
Обязательный параметр
Подключение к API управления uStor.-
строкаspec.controlPlane.address
Обязательный параметр
Адрес API управления uStor, доступный из кластера, напримерhttps://ustor-api.example.lab:23004. Не изменяется: тома остаются в том кластере uStor, где были созданы.Шаблон:
^https://[^\s/]+(:[0-9]+)?/?$ -
строкаspec.controlPlane.caCA-сертификат в формате PEM, по которому проверяется сертификат API управления, если он выпущен не публичным центром сертификации.
-
строкаspec.controlPlane.credentialsSecretName
Обязательный параметр
Имя секрета в неймспейсеd8-csi-mind-ustorс ключамиusernameиpasswordпользователя uStor, от имени которого CSI-контроллер управляет образами. Требования uStor к этому пользователю и порядок смены пароля описаны в документации модуля.Минимальная длина:
1 -
булевыйspec.controlPlane.skipCertificateValidationНе проверять сертификат API управления. Только для тестовых инсталляций.
-
-
объектspec.dataPlane
Обязательный параметр
Подключение узлов к сети данных uStor.-
массив строкspec.dataPlane.etcdAddresses
Обязательный параметр
Клиентские адреса etcd uStor, напримерhttps://10.101.0.1:23000. Они должны быть доступны с каждого узла, на котором монтируются тома uStor.-
строкаspec.dataPlane.etcdAddresses.Элемент массива
Шаблон:
^https?://[^\s/]+:[0-9]+$
-
-
объектspec.dataPlane.nodeSelector
Узлы, имеющие доступ к сети данных uStor.
Конфигурация клиента uStor размещается только на этих узлах. Если параметр не задан, она размещается на всех узлах типов
CloudEphemeral,CloudPermanent,CloudStaticиStatic. На этих узлах модуль заменяет/etc/ustor/ustor.confи сертификаты в/etc/ustor/certs. CSI node plugin работает на тех из этих узлов, где установлен клиент uStor.Внимание. Не исключайте узлы, на которых смонтированы тома uStor: с них удаляется CSI node plugin, и тома нельзя отмонтировать.
-
массив объектовspec.dataPlane.nodeSelector.matchExpressionsСписок условий на лейблы узлов. Узел должен удовлетворять всем условиям.
-
строкаspec.dataPlane.nodeSelector.matchExpressions.keyКлюч лейбла.
-
строкаspec.dataPlane.nodeSelector.matchExpressions.operatorОтношение ключа к значениям:
In,NotIn,ExistsилиDoesNotExist. -
массив строкspec.dataPlane.nodeSelector.matchExpressions.valuesЗначения лейбла. Для операторов
InиNotInсписок не должен быть пустым, дляExistsиDoesNotExistдолжен быть пустым.
-
-
объектspec.dataPlane.nodeSelector.matchLabelsЛейблы узлов в виде пар «ключ — значение». Узел должен иметь все перечисленные лейблы.
-
-
строкаspec.dataPlane.osdNetwork
Сеть OSD uStor в нотации CIDR, которая записывается в параметр
osd_networkконфигурации клиента uStor.Если параметр не задан,
osd_networkв конфигурацию не добавляется.Шаблон:
^[0-9a-fA-F:.]+/[0-9]{1,3}$ -
строкаspec.dataPlane.tlsSecretName
Обязательный параметр
Имя секрета в неймспейсеd8-csi-mind-ustorс клиентскими сертификатами uStor в ключахca.crt(CA uStor),client.crtиclient.key(клиентский сертификат),etcd-client.crtиetcd-client.key(клиентский сертификат etcd). На узлах файлы размещаются в/etc/ustor/certs.Минимальная длина:
1
-
-
-
объектstatusТекущее состояние подключения.
-
массив объектовstatus.conditionsПоследние наблюдения за состоянием ресурса. Типы условий:
Ready,Authenticated.-
строкаstatus.conditions.lastTransitionTimeВремя последней смены состояния условия. Не меняется, если изменились только причина или сообщение.
-
строкаstatus.conditions.messageПонятное человеку пояснение текущего состояния.
Максимальная длина:
32768 -
целое числоstatus.conditions.observedGenerationЗначение
metadata.generation, по которому выставлено условие.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonМашиночитаемая причина текущего состояния, пригодная для фильтрации логов и алертов.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusТекущее состояние условия.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.type
Тип условия.
ReadyравноTrue, когда подключение используется, в обоих секретах, на которые оно ссылается, есть все нужные ключи и API управления принимает вход, иFalseв остальных случаях. Условия нет, пока модуль ни разу не обработал ресурс.Authenticated— результат последнего входа в API управления с учётными данными изcontrolPlane.credentialsSecretName. Модуль повторяет вход раз в час и сразу после изменения секрета. ПричинаFalseобъясняет отказ:UserLocked(пользователь заблокирован),PasswordExpired(истёк срок действия пароля),TemporaryPassword(пароль задан администратором, и пользователь его ещё не сменил),UserNotFound,LoginRejectedилиUnreachable(API недоступен); сообщение содержит текст ошибки uStor. Условия нет, пока в секрете не хватает ключа.Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
целое числоstatus.observedGenerationЗначение
metadata.generation, по которому вычислен статус. Если оно отстаёт отmetadata.generation, модуль ещё не обработал последнюю спецификацию, и условия описывают предыдущую. -
строкаstatus.phase
Сводка по условию Ready:
- Created: подключение используется, и в секретах, на которые оно ссылается, есть все нужные ключи;
- Failed: подключение не используется, секрет, на который оно ссылается, отсутствует или неполон, или API управления не принимает вход; подробности в
reason.
Допустимые значения:
Failed,Created -
строкаstatus.reasonПовторяет сообщение условия Ready.
-