Стадия жизненного цикла модуля: Preview
У модуля есть требования для установки
Работоспособность модуля гарантируется только при соблюдении системных требований. Использование в других условиях возможно, но стабильная работа в таких случаях не гарантируется.
Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
DRBDMapper
Short names: drbdm
Scope: Cluster
Version: v1alpha1
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
строкаspec.lowerDevicePath
Обязательный параметр
Путь к нижележащему блочному устройству на узле.
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Длина:
1..4096 -
строкаspec.nodeName
Обязательный параметр
Имя узла, на котором расположено устройство.
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Длина:
1..253
-
-
объектstatus
-
массив объектовstatus.conditionsУсловия, отражающие текущее состояние ресурса.
-
строкаstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
строкаstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Максимальная длина:
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.openCountКоличество текущих открытий (использований) верхнего блочного устройства.
-
строкаstatus.upperDevicePathПуть к верхнему (созданному) блочному устройству на узле.
Максимальная длина:
4096
-
DRBDNodeOperation
Short names: drbdnop
Scope: Cluster
Version: v1alpha1
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
строкаspec.nodeName
Обязательный параметр
Имя узла, на котором будет выполнена операция.
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Длина:
1..253 -
строкаspec.type
Обязательный параметр
Тип операции над DRBD на узле. Может быть:
- UpdateDRBD (обновление DRBD на узле).
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Допустимые значения:
UpdateDRBD
-
-
объектstatus
-
строкаstatus.completedAtВремя завершения операции.
-
строкаstatus.messageДополнительное человекочитаемое сообщение о текущем состоянии операции.
Максимальная длина:
1024 -
строкаstatus.phaseТекущая фаза выполнения операции.
-
строкаstatus.startedAtВремя начала выполнения операции.
-
DRBDResourceOperation
Short names: drbdrop
Scope: Cluster
Version: v1alpha1
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
объектspec.createNewUUID
Параметры операции CreateNewUUID.
Важно: это поле является неизменяемым после установки.
-
булевыйspec.createNewUUID.clearBitmapОчистить bitmap при создании нового UUID (том считается полностью синхронизированным).
По умолчанию:
false -
булевыйspec.createNewUUID.forceResync
Принудительно запустить ресинхронизацию после создания нового UUID.
Обратите внимание, что поля ‘clearBitmap’ и ‘forceResync’ являются взаимоисключающими.
По умолчанию:
false
-
-
строкаspec.drbdResourceName
Обязательный параметр
Имя DRBD-ресурса, над которым выполняется операция.
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Длина:
1..253Шаблон:
^[0-9A-Za-z.+_-]*$ -
строкаspec.nodeName
Обязательный параметр
Имя узла, ограничивающее выполнение операции одним агентом: операцию обработает только агент, запущенный на этом узле.
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Длина:
1..253 -
строкаspec.type
Обязательный параметр
Тип операции над DRBD-ресурсом. Может быть:
- CreateNewUUID (создание нового UUID данных)
- ForcePrimary (принудительный перевод ресурса в роль Primary)
- Invalidate (пометка локальных данных как невалидных с последующей ресинхронизацией)
- Outdate (пометка данных как устаревших)
- Verify (запуск онлайн-проверки целостности данных)
- CreateSnapshot (создание снапшота).
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Допустимые значения:
CreateNewUUID,ForcePrimary,Invalidate,Outdate,Verify,CreateSnapshot
-
-
объектstatus
-
строкаstatus.completedAtВремя завершения операции.
-
строкаstatus.messageДополнительное человекочитаемое сообщение о текущем состоянии операции.
Максимальная длина:
1024 -
строкаstatus.phaseТекущая фаза выполнения операции.
-
строкаstatus.startedAtВремя начала выполнения операции.
-
DRBDResource
Short names: drbdr
Scope: Cluster
Version: v1alpha1
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
строкаspec.actualNameOnTheNodeФактическое имя DRBD-ресурса на узле.
Длина:
1..253Шаблон:
^[0-9A-Za-z.+_-]*$ -
булевыйspec.allowTwoPrimariesРазрешить одновременное присутствие двух ролей Primary (режим dual-primary).
По умолчанию:
false -
строкаspec.lvmLogicalVolumeNameИмя LVMLogicalVolume, используемого в качестве нижележащего (backing) устройства. Обязательно, когда ’type’ равен Diskful, и должно быть пустым, когда ’type’ равен Diskless.
Длина:
1..128 -
строкаspec.maintenance
Режим обслуживания. Когда задан, согласование (reconciliation) ресурса приостанавливается, но статус продолжает обновляться. Может быть:
- NoResourceReconciliation (согласование ресурса не выполняется).
Допустимые значения:
NoResourceReconciliation -
целочисленныйspec.nodeID
Обязательный параметр
Числовой идентификатор узла в DRBD (от 0 до 31).
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Допустимые значения:
0 <= X <= 31 -
строкаspec.nodeName
Обязательный параметр
Имя узла, на котором расположен DRBD-ресурс.
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Длина:
1..253 -
булевыйspec.nonVotingКогда включено, диск не участвует в голосовании за кворум, но продолжает нормально реплицировать данные. Допустимо только для ресурсов типа Diskful.
По умолчанию:
false -
массив объектовspec.peersСписок пиров (соседних узлов), с которыми реплицируется DRBD-ресурс.
-
булевыйspec.peers.allowRemoteReadРазрешить чтение данных с этого пира.
По умолчанию:
true -
строкаspec.peers.nameИмя узла-пира. Неизменяемо, используется как ключ элемента списка.
Длина:
1..253Шаблон:
^[0-9A-Za-z.+_-]*$ -
целочисленныйspec.peers.nodeIDЧисловой идентификатор пира в DRBD (от 0 до 31).
Допустимые значения:
0 <= X <= 31 -
массив объектовspec.peers.pathsСписок сетевых путей до пира.
-
объектspec.peers.paths.addressСетевой адрес (IPv4 и порт) для соединения с пиром.
-
строкаspec.peers.paths.address.ipv4
Обязательный параметр
Максимальная длина:
15Шаблон:
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ -
целочисленныйspec.peers.paths.address.port
Обязательный параметр
Допустимые значения:
1025 <= X <= 65535
-
-
строкаspec.peers.paths.systemNetworkNameИмя системной сети. Неизменяемо, используется как ключ элемента списка.
Длина:
1..64
-
-
булевыйspec.peers.pauseSyncПриостановить синхронизацию с этим пиром.
По умолчанию:
false -
строкаspec.peers.protocol
Протокол репликации DRBD. Может быть:
- A (асинхронная репликация)
- B (полусинхронная репликация)
- C (синхронная репликация).
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
По умолчанию:
CДопустимые значения:
A,B,C -
строкаОбщий секрет для аутентификации соединения с пиром.
Максимальная длина:
256 -
строкаАлгоритм хеширования для общего секрета DRBD. Может быть: SHA256, SHA1, DummyForTest.
Допустимые значения:
SHA256,SHA1,DummyForTest -
строкаspec.peers.typeТип пира. Может быть: Diskful (с диском) или Diskless (без диска).
По умолчанию:
DiskfulДопустимые значения:
Diskful,Diskless
-
-
целочисленныйspec.quorumТребуемое число голосов для наличия кворума.
Допустимые значения:
0 <= X <= 32 -
целочисленныйspec.quorumMinimumRedundancyМинимальная избыточность (число актуальных реплик), необходимая для сохранения кворума.
Допустимые значения:
0 <= X <= 32 -
строкаspec.roleЖелаемая роль DRBD-ресурса. Может быть: Primary или Secondary.
По умолчанию:
SecondaryДопустимые значения:
Primary,Secondary -
строка или числоspec.sizeРазмер устройства. Обязательно, когда ’type’ равен Diskful, и должно быть пустым, когда ’type’ равен Diskless.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
строкаspec.stateЖелаемое состояние DRBD-ресурса. Может быть: Up (поднят) или Down (опущен).
По умолчанию:
UpДопустимые значения:
Up,Down -
массив строкspec.systemNetworks
Обязательный параметр
Список имён системных сетей, которые используются для соединений DRBD.-
строкаspec.systemNetworks.Элемент массива
Максимальная длина:
64
-
-
строкаspec.typeТип DRBD-ресурса. Может быть: Diskful (с диском) или Diskless (без диска).
По умолчанию:
DiskfulДопустимые значения:
Diskful,Diskless
-
-
объектstatus
-
объектstatus.activeConfigurationТекущая активная (фактически применённая) конфигурация DRBD-ресурса.
-
булевыйstatus.activeConfiguration.allowTwoPrimariesРазрешён ли режим двух Primary в активной конфигурации.
-
массив строкstatus.activeConfiguration.llvFinalizersToReleaseСписок имён LVMLogicalVolume, с которых должен быть снят финализатор агента. Заполняется перед добавлением финализатора и очищается после его успешного снятия, чтобы агент не потерял информацию о ресурсах, требующих очистки.
-
строкаstatus.activeConfiguration.lvmLogicalVolumeNameИмя LVMLogicalVolume, фактически сконфигурированного в DRBD. Отражает реально используемое backing-устройство, а не желаемое значение из spec.
Максимальная длина:
128 -
булевыйstatus.activeConfiguration.nonVotingУчаствует ли диск в голосовании за кворум в активной конфигурации.
-
целочисленныйstatus.activeConfiguration.quorumТребуемое число голосов для кворума в активной конфигурации.
-
целочисленныйstatus.activeConfiguration.quorumMinimumRedundancyМинимальная избыточность в активной конфигурации.
-
строкаstatus.activeConfiguration.roleРоль DRBD-ресурса в активной конфигурации. Может быть: Primary или Secondary.
Допустимые значения:
Primary,Secondary -
строкаstatus.activeConfiguration.stateСостояние DRBD-ресурса в активной конфигурации. Может быть: Up или Down.
Допустимые значения:
Up,Down -
строкаstatus.activeConfiguration.typeТекущий эффективный тип конфигурации DRBD (Diskful или Diskless). Отражает то, как сконфигурирован DRBD, а не переходное состояние диска.
Допустимые значения:
Diskful,Diskless
-
-
массив объектовstatus.addressesФактические сетевые адреса, используемые DRBD-ресурсом.
-
объектstatus.addresses.address
-
строкаstatus.addresses.address.ipv4
Обязательный параметр
Максимальная длина:
15Шаблон:
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ -
целочисленныйstatus.addresses.address.port
Обязательный параметр
Допустимые значения:
1025 <= X <= 65535
-
-
строкаstatus.addresses.systemNetworkName
Максимальная длина:
64
-
-
массив объектовstatus.conditionsУсловия, отражающие текущее состояние DRBD-ресурса.
-
строкаstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
строкаstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Максимальная длина:
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.deviceСтабильный путь-симлинк к блочному устройству DRBD (например, /dev/sdsrv/<resourceName>), указывающий на /dev/drbd<minor>. Присутствует только когда ресурс поднят (Up) и имеет выделенный minor-номер.
Максимальная длина:
256 -
булевыйstatus.deviceIOSuspendedПризнак того, что ввод-вывод на устройстве приостановлен. Присутствует только на узле с ролью Primary.
-
булевыйstatus.deviceOpenПризнак того, что блочное устройство в данный момент открыто каким-либо процессом. Присутствует только на узле с ролью Primary; при значении true понижение роли до Secondary завершится ошибкой.
-
строкаstatus.deviceUUID16-значный шестнадцатеричный идентификатор (в верхнем регистре), связывающий данный DRBDResource с конкретными метаданными DRBD на backing-устройстве. Устанавливается один раз после создания или принятия метаданных и далее неизменяем.
Максимальная длина:
16Шаблон:
^([0-9A-F]{16})?$ -
строкаstatus.diskStateСостояние нижележащего диска DRBD. Отражает статус синхронизации и определяет, может ли ввод-вывод приложения обслуживаться локально или требует участия пиров.
-
массив объектовstatus.peersФактическое состояние пиров DRBD-ресурса.
-
булевыйstatus.peers.allowRemoteReadРазрешено ли чтение данных с этого пира.
-
строкаstatus.peers.connectionStateСостояние соединения с пиром.
-
строкаstatus.peers.diskStateСостояние диска пира.
-
строкаstatus.peers.nameИмя узла-пира.
Длина:
1..253 -
целочисленныйstatus.peers.nodeIDЧисловой идентификатор пира в DRBD.
Допустимые значения:
0 <= X <= 31 -
массив объектовstatus.peers.pathsФактические сетевые пути до пира.
-
объектstatus.peers.paths.addressСетевой адрес (IPv4 и порт) соединения с пиром.
-
строкаstatus.peers.paths.address.ipv4
Обязательный параметр
Максимальная длина:
15Шаблон:
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ -
целочисленныйstatus.peers.paths.address.port
Обязательный параметр
Допустимые значения:
1025 <= X <= 65535
-
-
булевыйstatus.peers.paths.establishedУстановлено ли соединение по данному пути.
-
строкаstatus.peers.paths.systemNetworkNameИмя системной сети данного пути.
Длина:
1..64
-
-
строкаstatus.peers.replicationStateСостояние репликации DRBD с этим пиром.
-
строкаstatus.peers.roleРоль пира в DRBD. Может быть: Primary или Secondary.
Допустимые значения:
Primary,Secondary -
строкаstatus.peers.typeТип пира. Может быть: Diskful или Diskless.
Допустимые значения:
Diskful,Diskless
-
-
булевыйstatus.quorumПризнак наличия кворума у DRBD-ресурса.
-
строка или числоstatus.sizeПолезная ёмкость верхнего устройства DRBD в байтах. Меньше значения spec.size, так как часть backing-устройства занята внутренними метаданными DRBD. Не задаётся, когда ресурс diskless или опущен (Down).
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-
ReplicatedStorageClass
Short names: rsc
Scope: Cluster
Version: v1alpha1
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
Legacy replication validations (only fire when replication is set):
FTT/GMDR mutual exclusivity with replication:
FTT and GMDR must be specified together:
Valid FTT/GMDR combinations: |FTT - GMDR| <= 1:
FTT=0, GMDR=0 requires topology Ignored:
TransZonal zone count validations for FTT/GMDR:
Immutable spec fields (transition rules; evaluated on update only): the conservative r3->r2 migration matrix permits changing only replication, failuresToTolerate, guaranteedMinimumDataRedundancy, configurationRolloutStrategy and eligibleNodesConflictResolutionStrategy; every other spec field is immutable after creation. These CEL rules guard the scalar/enum and bounded-list fields. The unbounded structured fields (storage, nodeLabelSelector) are guarded by the update webhook (images/webhooks/handlers/rscValidator.go) instead of CEL, because a CEL equality comparison over their unbounded list/map would risk the per-expression CEL cost budget and cause the apiserver to reject the whole CRD at install time.
topology, volumeAccess and zones are strictly immutable (never touched by the controller). reclaimPolicy is deliberately MUTABLE: changing it is a supported operation — rsc_controller reacts by recreating the Kubernetes StorageClass with the new policy (a StorageClass itself is immutable, so recreate is the mechanism; covered by the SC lifecycle e2e). systemNetworkNames and eligibleNodesPolicy are immutable once set: the controller fills them from nil to their default (rsc_controller applySpecDefaults), so the rules must permit that initial nil->value transition while still rejecting later changes.
Defines a Kubernetes Storage class configuration.
Most fields are immutable after creation. Only the replication settings (replication, failuresToTolerate, guaranteedMinimumDataRedundancy), configurationRolloutStrategy, eligibleNodesConflictResolutionStrategy and reclaimPolicy (the StorageClass is recreated with the new policy) can be changed on an existing resource; all other fields are rejected on update.
-
объектspec.configurationRolloutStrategyConfigurationRolloutStrategy defines how configuration changes are applied to existing volumes. When not specified, the controller fills the default (RollingUpdate, maxParallel=5).
-
объектspec.configurationRolloutStrategy.rollingUpdateRollingUpdate configures parameters for RollingUpdate strategy. Required when type is RollingUpdate.
-
целочисленныйspec.configurationRolloutStrategy.rollingUpdate.maxParallel
Обязательный параметр
MaxParallel is the maximum number of volumes being rolled out simultaneously.По умолчанию:
5Допустимые значения:
1 <= X <= 200
-
-
строкаspec.configurationRolloutStrategy.type
Обязательный параметр
Type specifies the rollout strategy type.Допустимые значения:
RollingUpdate,NewVolumesOnly
-
-
объектspec.eligibleNodesConflictResolutionStrategyEligibleNodesConflictResolutionStrategy defines how the controller handles volumes with eligible nodes conflicts. When not specified, the controller fills the default (RollingRepair, maxParallel=5).
-
объектspec.eligibleNodesConflictResolutionStrategy.rollingRepairRollingRepair configures parameters for RollingRepair conflict resolution strategy. Required when type is RollingRepair.
-
целочисленныйspec.eligibleNodesConflictResolutionStrategy.rollingRepair.maxParallel
Обязательный параметр
MaxParallel is the maximum number of volumes being repaired simultaneously.По умолчанию:
5Допустимые значения:
1 <= X <= 200
-
-
строкаspec.eligibleNodesConflictResolutionStrategy.type
Обязательный параметр
Type specifies the conflict resolution strategy type.Допустимые значения:
Manual,RollingRepair
-
-
объектspec.eligibleNodesPolicyEligibleNodesPolicy defines policies for managing eligible nodes. When not specified, the controller fills the default (notReadyGracePeriod=10m).
-
строкаspec.eligibleNodesPolicy.notReadyGracePeriod
Обязательный параметр
NotReadyGracePeriod specifies how long to wait before removing a not-ready node from the eligible nodes list.По умолчанию:
10m
-
-
целочисленныйspec.failuresToTolerateFailuresToTolerate (FTT) specifies how many arbitrary node failures the volume can tolerate while remaining available for IO. Mutually exclusive with Replication. Must be specified together with GuaranteedMinimumDataRedundancy. Valid range: 0-2. Valid combinations: |FTT - GMDR| <= 1.
Допустимые значения:
0 <= X <= 2 -
целочисленныйspec.guaranteedMinimumDataRedundancyGuaranteedMinimumDataRedundancy (GMDR) specifies the minimum number of additional data copies maintained while the volume is serving IO. GMDR=0 means the system may operate with a single data copy in degraded mode (like a RAID-1 mirror after one disk failure). GMDR=1 means at least 2 copies are always maintained during IO. Mutually exclusive with Replication. Must be specified together with FailuresToTolerate. Valid range: 0-2. Valid combinations: |FTT - GMDR| <= 1.
Допустимые значения:
0 <= X <= 2 -
объектspec.nodeLabelSelectorNodeLabelSelector filters nodes eligible for DRBD participation. Only nodes matching this selector can store data, provide access, or host tiebreaker. If not specified, all nodes are candidates.
-
массив объектовspec.nodeLabelSelector.matchExpressionsmatchExpressions is a list of label selector requirements. The requirements are ANDed.
-
строкаspec.nodeLabelSelector.matchExpressions.keykey is the label key that the selector applies to.
-
строкаspec.nodeLabelSelector.matchExpressions.operatoroperator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
-
массив строкspec.nodeLabelSelector.matchExpressions.valuesvalues is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
-
-
объектspec.nodeLabelSelector.matchLabelsmatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
-
-
строкаspec.reclaimPolicy
Обязательный параметр
Reclaim policy дочернего StorageClass. Может быть:
- Delete (если PersistentVolumeClaim будет удален, вместе с ним удалится соответствующий PersistentVolume)
- Retain (если PersistentVolumeClaim будет удален, соответствующий PersistentVolume останется нетронутым в статусе Released)
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Допустимые значения:
Delete,Retain -
строкаspec.replication
Режим репликации StorageClass. Может быть:
- None — в этом режиме репликация отключена, и данные существуют только в одном экземпляре.
- Availability — режим репликации, при котором том остается доступным для чтения и записи, даже если одна из реплик тома становится недоступной. Данные хранятся в двух экземплярах на разных узлах. Важно: этот режим не гарантирует консистентность данных и может привести к split brain и потере данных при проблемах с сетевой связностью между узлами. Рекомендуется использовать только для некритичных данных и приложений, не требующих высокой надежности и целостности данных.
- ConsistencyAndAvailability — режим репликации, при котором том остается доступным для чтения и записи, даже если одна из реплик тома становится недоступной. Данные хранятся в трех экземплярах на разных узлах. Этот режим обеспечивает защиту от потери данных при выходе из строя двух узлов, содержащих реплики тома, и гарантирует консистентность данных. Однако при потере двух реплик том переходит в режим “приостановки” ввода/вывода (suspend-io).
Обратите внимание, что режимом репликации по умолчанию является ‘ConsistencyAndAvailability’. Это поле можно изменять у существующего ресурса — так выполняется миграция томов между layout’ами (например r3→r2 сменой ‘ConsistencyAndAvailability’ на ‘Availability’). Изменение применяется сразу ко всем томам класса; обратной автоматической миграции (в сторону большего числа реплик) нет.
Допустимые значения:
None,Availability,Consistency,ConsistencyAndAvailability -
объектspec.storageStorage defines the storage backend configuration for this storage class. Specifies the type of volumes (LVM or LVMThin) and which LVMVolumeGroups will be used to allocate space for volumes.
-
массив объектовspec.storage.lvmVolumeGroups
Обязательный параметр
LVMVolumeGroups is an array of LVMVolumeGroup resource names whose Volume Groups/Thin-pools will be used to allocate the required space.
Note that every LVMVolumeGroup resource must have the same type (Thin/Thick) as specified in the Type field. is replaced with selectors, revisit the key. Currently using name only because thinPoolName is optional and cannot be a listMapKey without a default value.
-
строкаspec.storage.lvmVolumeGroups.nameSelected LVMVolumeGroup resource’s name.
Минимальная длина:
1Шаблон:
^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$ -
строкаspec.storage.lvmVolumeGroups.thinPoolNameSelected Thin-pool name.
Длина:
1..128Шаблон:
^[a-zA-Z0-9][a-zA-Z0-9_.+-]*$
-
-
строкаspec.storage.type
Обязательный параметр
Type defines the volumes type. Might be:
- LVM (for Thick)
- LVMThin (for Thin)
Допустимые значения:
LVM,LVMThin
-
-
строкаspec.storagePoolИмя Storage Pool в бэкенде LINSTOR.
-
массив строкspec.systemNetworkNames
SystemNetworkNames specifies network names used for DRBD replication traffic. At least one network name must be specified. Each name is limited to 64 characters.
Custom network support requires NetworkNode watch implementation in the controller. When multi-network support is implemented, raise MaxItems to 10.
-
строкаspec.topology
Обязательный параметр
Настройки топологии для томов в создаваемом StorageClass. Может быть:
- TransZonal — реплики для томов будут создаваться в разных зонах (по одной реплике на зону). Для использования этой топологии доступные зоны должны быть указаны в параметре zones, а на узлах кластера должен присутствовать лейбл topology.kubernetes.io/zone=<название зоны>.
- Zonal — все реплики томов создаются в той же зоне, которую планировщик выбрал для размещения пода, использующего данный том. Рекомендуется использовать эту топологию в условиях высокого пинга и/или низкой пропускной способности сети между зонами.
- Ignored — для размещения реплик томов не будет использоваться информация о топологии. Реплики могут размещаться на любых доступных узлах, но с ограничением: не более одной реплики определенного тома на один узел.
Обратите внимание, что создать StorageClass с топологией ‘Ignored’ можно только если в кластере нет зон (нет узлов с лейблами topology.kubernetes.io/zone). Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Для корректной работы системы лейблом ’topology.kubernetes.io/zone’ должны быть помечены либо все узлы кластера, либо ни один из них.
Допустимые значения:
TransZonal,Zonal,Ignored -
строкаspec.volumeAccess
Режим доступа к данным. Может быть:
- Local — в этом режиме запрещено создание пода на узлах, на которых отсутствует локальная реплика тома, используемого этим подом.
- EventuallyLocal — в этом режиме том будет создан сразу после появления пода и назначения ему рабочего узла. При первоначальном создании пода учитываются настройки его топологии, и локальная реплика, по возможности, будет создана на том же узле, где размещен под. Однако может возникнуть ситуация, когда под создаётся на узле, на котором отсутствует локальная реплика тома. В таком случае под будет подключен по сети к существующим репликам тома, после чего, через 30 минут, на этом узле начнется создание локальной реплики тома, включающее копирование всех данных тома по сети с других реплик на этот узел.
- PreferablyLocal — то же, что и в EventuallyLocal, за исключением того, что под будет постоянно подключен по сети к репликам тома, если он был создан на узле, где отсутствует локальная реплика тома (локальная реплика на этом узле создаваться не будет).
- Any — в этом режиме том будет создан до появления пода и может быть размещен на любом доступном узле без учета настроек топологии у пода, который будет использовать его в будущем. В случае, если под создан на узле, где отсутствует локальная реплика тома, под будет постоянно подключен по сети к репликам тома.
Обратите внимание, что режимом доступа по умолчанию является ‘PreferablyLocal’.
Важно: при использовании настроек EventuallyLocal, PreferablyLocal и Any доступ к данным по сети разрешен только в пределах одной зоны. Запрещено создание пода в зоне, где отсутствует реплика тома.
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
По умолчанию:
PreferablyLocalДопустимые значения:
Local,EventuallyLocal,PreferablyLocal,Any -
массив строкspec.zones
Список зон, в которых будут созданы реплики тома. Контроллер повесит лейбл с именем StorageClass на те узлы, на которых будет возможно создать реплики томов.
Обратите внимание, что для режимов репликации ‘Availability’ и ‘ConsistencyAndAvailability’ вам необходимо указать 3 зоны, если выбрана топология TransZonal. Обратите внимание, что данный параметр является обязательным, если выбрана топология TransZonal. Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
-
строкаspec.zones.Элемент массива
Максимальная длина:
63
-
-
-
объектstatusDisplays current information about the Storage Class.
-
массив объектовstatus.conditions
-
строкаstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
строкаstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Максимальная длина:
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.configurationConfiguration is the resolved configuration that volumes should align to.
-
целочисленныйstatus.configuration.failuresToTolerate
Обязательный параметр
FailuresToTolerate is the resolved FTT value.Допустимые значения:
0 <= X <= 2 -
целочисленныйstatus.configuration.guaranteedMinimumDataRedundancy
Обязательный параметр
GuaranteedMinimumDataRedundancy is the resolved GMDR value.Допустимые значения:
0 <= X <= 2 -
строкаstatus.configuration.replicatedStoragePoolName
Обязательный параметр
ReplicatedStoragePoolName is the name of the ReplicatedStoragePool resource.Минимальная длина:
1 -
строкаstatus.configuration.topology
Обязательный параметр
Topology is the resolved topology setting.Допустимые значения:
TransZonal,Zonal,Ignored -
строкаstatus.configuration.volumeAccess
Обязательный параметр
VolumeAccess is the resolved volume access mode.Допустимые значения:
Local,EventuallyLocal,PreferablyLocal,Any
-
-
целочисленныйstatus.configurationGenerationConfigurationGeneration is the RSC generation when configuration was accepted.
-
строкаstatus.messageMessage is a human-readable description of the current phase.
-
строкаstatus.phase
Общее текущее состояние StorageClass. Может быть:
- Failed (если контроллер получил некорректную конфигурацию ресурса или возникли ошибки в процессе выполнения операции)
- Created (если StorageClass создан успешно)
Допустимые значения:
Ready,WaitingForStoragePool,InsufficientNodes,InvalidConfiguration,RollingOut,PartiallyAligned,Terminating -
целочисленныйstatus.storagePoolBasedOnGenerationStoragePoolBasedOnGeneration is the RSC generation when storagePoolName was computed.
-
целочисленныйstatus.storagePoolEligibleNodesRevisionStoragePoolEligibleNodesRevision tracks RSP’s eligibleNodesRevision for change detection.
-
строкаstatus.storagePoolNameStoragePoolName is the computed name of the ReplicatedStoragePool for this RSC. Format: auto-rsp-<fnv128-hex>. Multiple RSCs with identical storage parameters will share the same StoragePoolName.
-
объектstatus.volumes
Обязательный параметр
Volumes provides aggregated volume statistics. Always present (may have total=0).По умолчанию:
{}-
целочисленныйstatus.volumes.alignedAligned is the number of volumes whose configuration matches the storage class.
-
целочисленныйstatus.volumes.inConflictWithEligibleNodesInConflictWithEligibleNodes is the number of volumes with replicas on non-eligible nodes.
-
целочисленныйstatus.volumes.pendingObservationPendingObservation is the number of volumes that haven’t observed current RSC configuration or eligible nodes.
-
целочисленныйstatus.volumes.staleConfigurationStaleConfiguration is the number of volumes with outdated configuration.
-
целочисленныйstatus.volumes.totalTotal is the total number of volumes.
-
массив строкstatus.volumes.usedStoragePoolNamesUsedStoragePoolNames is a sorted list of storage pool names currently used by volumes.
-
-
ReplicatedStoragePool
Short names: rsp
Scope: Cluster
Version: v1alpha1
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspecDefines desired rules for Linstor’s Storage-pools.
-
объектspec.eligibleNodesPolicy
Обязательный параметр
EligibleNodesPolicy defines policies for managing eligible nodes. Always present with defaults.По умолчанию:
{ "notReadyGracePeriod": "10m" }-
строкаspec.eligibleNodesPolicy.notReadyGracePeriod
Обязательный параметр
NotReadyGracePeriod specifies how long to wait before removing a not-ready node from the eligible nodes list.По умолчанию:
10m
-
-
массив объектовspec.lvmVolumeGroups
Обязательный параметр
Список LVMVolumeGroup-ресурсов, Volume Group’ы/Thin-pool’ы которых будут использованы для создания Storage-pool’ов в бэкенде LINSTOR.
Обратите внимание, что каждый LVMVolumeGroup-ресурс обязан иметь тот же тип (Thin/Thick), что указан в поле ‘Spec.Type’ текущего ресурса.
-
строкаspec.lvmVolumeGroups.nameИмя ресурса LVMVolumeGroup.
Минимальная длина:
1Шаблон:
^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$ -
строкаspec.lvmVolumeGroups.thinPoolNameИмя выбранного Thin-pool в рамках указанного LVMVolumeGroup. Обязательное поле если вы создаёте ReplicatedStoragePool с типом LVMThin.
Длина:
1..128Шаблон:
^[a-zA-Z0-9][a-zA-Z0-9_.+-]*$
-
-
объектspec.nodeLabelSelectorNodeLabelSelector filters nodes eligible for storage pool participation. Only nodes matching this selector can store data. If not specified, all nodes with matching LVMVolumeGroups are candidates.
-
массив объектовspec.nodeLabelSelector.matchExpressionsmatchExpressions is a list of label selector requirements. The requirements are ANDed.
-
строкаspec.nodeLabelSelector.matchExpressions.keykey is the label key that the selector applies to.
-
строкаspec.nodeLabelSelector.matchExpressions.operatoroperator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
-
массив строкspec.nodeLabelSelector.matchExpressions.valuesvalues is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
-
-
объектspec.nodeLabelSelector.matchLabelsmatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
-
-
массив строкspec.systemNetworkNames
Обязательный параметр
SystemNetworkNames specifies network names used for DRBD replication traffic. At least one network name must be specified. Each name is limited to 64 characters.
Custom network support requires NetworkNode watch implementation in the controller. When multi-network support is implemented, raise MaxItems to 10.
По умолчанию:
[ "Internal" ] -
строкаspec.type
Обязательный параметр
Определяет тип Volume’ов. Может быть:
- LVM (для классических LVM-томов)
- LVMThin (для Thin-томов)
Допустимые значения:
LVM,LVMThin -
массив строкspec.zonesArray of zones the Storage pool’s volumes should be replicated in.
-
строкаspec.zones.Элемент массива
Максимальная длина:
63
-
-
-
объектstatusDisplays current information about the state of the LINSTOR storage pool.
-
массив объектовstatus.conditions
-
строкаstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
строкаstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Максимальная длина:
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.eligibleNodesEligibleNodes lists nodes eligible for this storage pool.
-
булевыйstatus.eligibleNodes.agentReadyAgentReady indicates whether the sds-replicated-volume agent on this node is ready.
-
массив объектовstatus.eligibleNodes.lvmVolumeGroupsLVMVolumeGroups lists LVM volume groups available on this node.
-
строкаstatus.eligibleNodes.lvmVolumeGroups.nameName is the LVMVolumeGroup resource name.
Максимальная длина:
253 -
булевыйstatus.eligibleNodes.lvmVolumeGroups.readyReady indicates whether the LVMVolumeGroup (and its thin pool, if applicable) is ready.
-
строкаstatus.eligibleNodes.lvmVolumeGroups.thinPoolNameThinPoolName is the thin pool name (for LVMThin storage pools).
Максимальная длина:
128 -
булевыйstatus.eligibleNodes.lvmVolumeGroups.unschedulableUnschedulable indicates whether new volumes should not use this volume group.
-
-
строкаstatus.eligibleNodes.nodeNameNodeName is the Kubernetes node name.
Максимальная длина:
253 -
булевыйstatus.eligibleNodes.nodeReadyNodeReady indicates whether the Kubernetes node is ready.
-
булевыйstatus.eligibleNodes.unschedulableUnschedulable indicates whether new volumes should not be scheduled to this node.
-
строкаstatus.eligibleNodes.zoneNameZoneName is the zone this node belongs to.
Максимальная длина:
63
-
-
целочисленныйstatus.eligibleNodesRevisionEligibleNodesRevision is incremented when eligible nodes change.
-
строкаstatus.messageMessage is a human-readable description of the current phase. Mirrors the Ready condition message.
-
строкаstatus.phase
Текущее состояние ReplicatedStoragePool-ресурса. Может быть:
- Completed (если контроллер получил корректную конфигурацию ресурса и конфигурация Storage-pool’ов в LINSTOR обновлена)
- Updating (если контроллер получил корректную конфигурацию ресурса и конфигурация Storage-pool’ов в LINSTOR обновляется)
- Failed (если контроллер получил некорректную конфигурацию ресурса или во время операции возникла ошибка)
Допустимые значения:
Ready,WaitingForLVMVolumeGroups,InvalidConfiguration -
объектstatus.usedByUsedBy tracks which resources are using this storage pool.
-
массив строкstatus.usedBy.replicatedStorageClassNamesReplicatedStorageClassNames lists RSC names using this storage pool.
-
строкаstatus.usedBy.replicatedStorageClassNames.Элемент массива
Максимальная длина:
253
-
-
-
ReplicatedVolumeAttachment
Short names: rva
Scope: Cluster
Version: v1alpha1
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
строкаspec.nodeName
Обязательный параметр
Имя узла, к которому должен быть подключён том.
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Длина:
1..253 -
строкаspec.replicatedVolumeName
Обязательный параметр
Имя ReplicatedVolume, который должен быть подключён к узлу.
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Длина:
1..127Шаблон:
^[0-9A-Za-z.+_-]*$
-
-
объектstatus
-
массив объектовstatus.conditionsУсловия, отражающие текущее состояние подключения тома.
-
строкаstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
строкаstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Максимальная длина:
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.devicePathПуть к блочному устройству на узле. Задаётся только когда устройство доступно на узле. Пример: /dev/drbd10012.
Максимальная длина:
256 -
булевыйstatus.inUseПризнак того, что блочное устройство в данный момент используется каким-либо процессом. Задаётся только когда устройство доступно на узле.
-
булевыйstatus.ioSuspendedПризнак того, что ввод-вывод на устройстве приостановлен (suspend-io). Задаётся только когда устройство доступно на узле.
-
строкаstatus.messageЧеловекочитаемое описание текущего состояния подключения.
Максимальная длина:
512 -
строкаstatus.phase
Краткая сводка операционного состояния подключения. Может быть:
- Pending (подключение ожидает обработки)
- Attaching (выполняется подключение)
- Attached (том подключён и устройство доступно на узле)
- Detaching (выполняется отключение)
- Terminating (ресурс подключения удаляется).
Допустимые значения:
Pending,Attaching,Attached,Detaching,Terminating
-
ReplicatedVolumeReplica
Short names: rvr
Scope: Cluster
Version: v1alpha1
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
строкаspec.lvmVolumeGroupNameИмя ресурса LVMVolumeGroup, в котором должна быть размещена данная реплика.
Минимальная длина:
1Шаблон:
^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$ -
строкаspec.lvmVolumeGroupThinPoolNameИмя Thin-pool в рамках указанного LVMVolumeGroup (для Storage Pool типа LVMThin).
-
строкаspec.nodeName
Имя узла, на котором размещается реплика.
Важно: это поле является неизменяемым после первоначальной установки.
Длина:
1..253 -
строкаspec.replicatedVolumeName
Обязательный параметр
Имя ReplicatedVolume, которому принадлежит данная реплика.
Важно: это поле является неизменяемым и не может быть изменено после первоначального создания ресурса.
Длина:
1..120Шаблон:
^[0-9A-Za-z.+_-]*$ -
строкаspec.type
Обязательный параметр
Тип реплики. Может быть:
- Diskful (реплика с локальным диском и данными)
- ShadowDiskful (временная теневая реплика с диском, используемая при переносе/добавлении диска)
- Access (бездисковая реплика для доступа к данным, не хранит данные локально)
- TieBreaker (бездисковая реплика-арбитр для обеспечения кворума).
Допустимые значения:
Diskful,ShadowDiskful,Access,TieBreaker
-
-
объектstatus
-
массив объектовstatus.addressesСетевые адреса реплики, используемые для соединений DRBD.
-
объектstatus.addresses.address
-
строкаstatus.addresses.address.ipv4
Обязательный параметр
Максимальная длина:
15Шаблон:
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ -
целочисленныйstatus.addresses.address.port
Обязательный параметр
Допустимые значения:
1025 <= X <= 65535
-
-
строкаstatus.addresses.systemNetworkName
Максимальная длина:
64
-
-
объектstatus.attachmentИнформация о состоянии подключения устройства. Задаётся только когда реплика подключена на узле.
-
строкаstatus.attachment.devicePath
Обязательный параметр
Путь к блочному устройству, когда реплика подключена. Пример: /dev/drbd10012.Длина:
1..256 -
булевыйstatus.attachment.inUse
Обязательный параметр
Признак того, что блочное устройство реплики в данный момент используется каким-либо процессом. -
булевыйstatus.attachment.ioSuspended
Обязательный параметр
Признак того, что ввод-вывод на устройстве приостановлен.
-
-
объектstatus.backingVolumeИнформация о нижележащем LVM logical volume. Задаётся только для реплик типа Diskful.
-
строкаstatus.backingVolume.lvmVolumeGroupNameИмя LVM volume group нижележащего тома.
Максимальная длина:
253 -
строкаstatus.backingVolume.lvmVolumeGroupThinPoolNameИмя Thin-pool в рамках LVM volume group. Пусто, если нижележащий том не размещён в Thin-pool.
Максимальная длина:
253 -
строка или числоstatus.backingVolume.sizeРазмер нижележащего LVM logical volume.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
строкаstatus.backingVolume.stateЛокальное состояние нижележащего тома.
-
-
массив объектовstatus.conditionsУсловия, отражающие текущее состояние реплики.
-
строкаstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
строкаstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Максимальная длина:
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.datameshRequestОжидающий запрос на изменение членства реплики в datamesh. Запрос устанавливается контроллером только после выполнения всех предварительных условий (например, для операции Join должны быть заполнены и проверены поля spec.nodeName, spec.lvmVolumeGroupName и spec.lvmVolumeGroupThinPoolName).
-
строкаstatus.datameshRequest.lvmVolumeGroupNameИмя ресурса LVMVolumeGroup для Diskful-реплик.
Минимальная длина:
1Шаблон:
^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$ -
строкаstatus.datameshRequest.operation
Обязательный параметр
Тип запрашиваемого изменения членства. Может быть:
- Join (присоединение реплики к datamesh)
- Leave (выход реплики из datamesh)
- ForceLeave (принудительный выход)
- ForceDetach (принудительное отключение)
- ChangeRole (смена типа/роли реплики)
- ChangeBackingVolume (смена нижележащего тома).
Допустимые значения:
Join,Leave,ForceLeave,ForceDetach,ChangeRole,ChangeBackingVolume -
строкаstatus.datameshRequest.thinPoolNameИмя Thin-pool (необязательно, для Storage Pool типа LVMThin).
-
строкаstatus.datameshRequest.typeЦелевой тип реплики. Обязателен для операций Join и ChangeRole. Может быть: Diskful, Access, TieBreaker.
Допустимые значения:
Diskful,Access,TieBreaker
-
-
целочисленныйstatus.datameshRevisionРевизия datamesh, для которой реплика была полностью сконфигурирована (DRBD настроен согласно целевому состоянию, нижележащий том для Diskful создан, готов и совпадает с целевым, а агент подтвердил успешную конфигурацию). Не означает установленных соединений DRBD и завершённой синхронизации данных.
-
целочисленныйstatus.datameshRevisionObservedByAgentРевизия datamesh, для которой агент обработал spec ресурса DRBDResource. В отличие от datameshRevision, устанавливается независимо от того, сообщил ли агент об успехе, ошибке или режиме обслуживания.
-
объектstatus.drbdrReconciliationCacheКэшированные значения для оптимизации согласования (reconciliation) ресурса DRBDResource.
-
целочисленныйstatus.drbdrReconciliationCache.datameshRevisionРевизия datamesh, для которой в последний раз вычислялся spec ресурса DRBDResource.
-
целочисленныйstatus.drbdrReconciliationCache.drbdrGenerationПоколение (generation) DRBDResource на момент последнего вычисления его spec.
-
строкаstatus.drbdrReconciliationCache.targetTypeЦелевой тип, для которого в последний раз вычислялся spec DRBDResource.
Допустимые значения:
Diskful,LiminalDiskful,ShadowDiskful,LiminalShadowDiskful,TieBreaker,Access
-
-
строкаstatus.initialQuorumReachedAtМомент, когда контроллер впервые увидел, что реплика имеет кворум в качестве члена datamesh. Поле-защёлка: выставляется один раз за время членства и сбрасывается при выходе реплики из datamesh (datameshRevision снова 0), поэтому повторно присоединяющаяся реплика снова проходит присоединение. Позволяет отличить «кворум ещё не был достигнут» (у члена, чьи соединения с пирами ещё поднимаются, а значит, он не мог заморозить ввод-вывод) от «кворум потерян» (у члена, чей ввод-вывод заморожен) — на одном снимке состояния эти случаи неразличимы. Это собственное наблюдение контроллера, а не исторический факт о томе: для реплики, которая была членом datamesh ещё до появления этого поля, здесь будет время первого согласования (reconciliation), увидевшего кворум, а не время фактического первого достижения кворума.
-
строкаstatus.messageЧеловекочитаемое описание текущего состояния реплики.
Максимальная длина:
512 -
массив объектовstatus.peersСостояние соединений с пирами-репликами.
-
булевыйstatus.peers.attachedПризнак того, что пир подключён на своём узле (имеет блочное устройство).
-
строкаstatus.peers.backingVolumeStateСостояние нижележащего тома пира.
-
массив строкstatus.peers.connectionEstablishedOnСписок имён системных сетей, в которых установлено соединение с этим пиром.
-
строкаstatus.peers.connectionEstablishedOn.Элемент массива
Максимальная длина:
64
-
-
строкаstatus.peers.connectionStateСостояние соединения DRBD с этим пиром.
-
строкаstatus.peers.nameИмя пира-реплики (ReplicatedVolumeReplica). Имеет формат “prefix-N”, где N от 0 до 31.
Длина:
1..253Шаблон:
^.+-([0-9]|[12][0-9]|3[01])$ -
строкаstatus.peers.replicationStateСостояние репликации DRBD с этим пиром.
-
строкаstatus.peers.typeТип реплики-пира. Может быть: Diskful, Access, TieBreaker.
Допустимые значения:
Diskful,Access,TieBreaker
-
-
строкаstatus.phase
Краткая сводка операционного состояния реплики. Может быть:
- Pending (ожидание обработки)
- Provisioning (выделение ресурсов)
- Configuring (настройка)
- WaitingForDatamesh (ожидание datamesh)
- Synchronizing (синхронизация данных)
- Healthy (реплика в норме)
- PartiallyDegraded (частичная деградация)
- Degraded (деградация)
- Critical (критическое состояние)
- Progressing (выполняется переход)
- AgentNotReady (агент недоступен)
- Terminating (реплика удаляется).
Допустимые значения:
Pending,Provisioning,Configuring,WaitingForDatamesh,Synchronizing,Healthy,PartiallyDegraded,Degraded,Critical,Progressing,AgentNotReady,Terminating -
булевыйstatus.quorumПризнак наличия кворума у данной реплики.
-
объектstatus.quorumSummaryПодробная информация о кворуме реплики.
-
целочисленныйstatus.quorumSummary.connectedDiskfulPeers
Обязательный параметр
Число подключённых Diskful-пиров с установленным соединением.По умолчанию:
0 -
целочисленныйstatus.quorumSummary.connectedTieBreakerPeers
Обязательный параметр
Число подключённых TieBreaker-пиров с установленным соединением. TieBreaker’ы учитываются в кворуме только при определённых граничных условиях.По умолчанию:
0 -
целочисленныйstatus.quorumSummary.connectedUpToDatePeers
Обязательный параметр
Число подключённых пиров с установленным соединением и актуальным (UpToDate) диском.По умолчанию:
0 -
целочисленныйstatus.quorumSummary.quorumТребуемый порог кворума.
-
целочисленныйstatus.quorumSummary.quorumMinimumRedundancyЧисло diskful-пиров с актуальными данными (включая саму реплику), необходимое для кворума.
-
-
строка или числоstatus.sizeПолезная ёмкость DRBD-устройства в байтах. Не задаётся, когда реплика diskless или опущена (Down).
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
строкаstatus.typeНаблюдаемый в данный момент тип конфигурации DRBD (из активной конфигурации DRBDResource). Может быть: Diskful или Diskless. Access и TieBreaker отображаются здесь как Diskless, так как неразличимы по собственному статусу реплики.
Допустимые значения:
Diskful,Diskless
-
ReplicatedVolume
Short names: rv
Scope: Cluster
Version: v1alpha1
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspecAuto mode requires RSC name, forbids manualConfiguration: Manual mode requires manualConfiguration, forbids RSC name:
-
строкаspec.configurationMode
Способ определения конфигурации тома. Может быть:
- Auto (по умолчанию) — конфигурация берётся из указанного ReplicatedStorageClass (поле ‘replicatedStorageClassName’).
- Manual — конфигурация задаётся напрямую в поле ‘manualConfiguration’.
По умолчанию:
AutoДопустимые значения:
Auto,Manual -
объектspec.manualConfigurationКонфигурация тома, заданная напрямую. Обязательна, когда ‘configurationMode’ равен Manual, и должна быть пустой, когда ‘configurationMode’ равен Auto.
-
целочисленныйspec.manualConfiguration.failuresToTolerate
Обязательный параметр
Число одновременных отказов узлов, которые том должен переносить (FTT).Допустимые значения:
0 <= X <= 2 -
целочисленныйspec.manualConfiguration.guaranteedMinimumDataRedundancy
Обязательный параметр
Гарантированная минимальная избыточность данных (GMDR) — число копий данных, которое гарантированно сохраняется.Допустимые значения:
0 <= X <= 2 -
строкаspec.manualConfiguration.replicatedStoragePoolName
Обязательный параметр
Имя ресурса ReplicatedStoragePool, из которого выделяется место под том.Минимальная длина:
1 -
строкаspec.manualConfiguration.topology
Обязательный параметр
Топология размещения реплик. Может быть:
- TransZonal (реплики распределяются между зонами)
- Zonal (реплики размещаются в одной зоне)
- Ignored (топология не учитывается).
Допустимые значения:
TransZonal,Zonal,Ignored -
строкаspec.manualConfiguration.volumeAccess
Обязательный параметр
Режим доступа к тому. Может быть: Local, EventuallyLocal, PreferablyLocal, Any.Допустимые значения:
Local,EventuallyLocal,PreferablyLocal,Any
-
-
целочисленныйspec.maxAttachments
Максимальное число узлов, к которым том может быть подключён одновременно.
Внимание: значения больше 1 включают режим множественного подключения (multi-attach), в котором блочное устройство доступно на запись одновременно с нескольких узлов. Потребляющее приложение обязано гарантировать отсутствие одновременных записей в одни и те же области диска с разных узлов. В частности, монтирование тома как обычной файловой системы (ext4, xfs и т.п.) более чем с одного узла небезопасно, если только все монтирования не выполнены в режиме только для чтения; используйте кластерную файловую систему (например, GFS2, OCFS2) или координацию на уровне приложения. Используйте на свой риск и с полным пониманием последствий.
По умолчанию:
1Допустимые значения:
1 <= X <= 32 -
строкаspec.replicatedStorageClassNameИмя ReplicatedStorageClass, предоставляющего конфигурацию тома. Обязательно, когда ‘configurationMode’ равен Auto, и должно быть пустым, когда ‘configurationMode’ равен Manual.
Минимальная длина:
1 -
строка или числоspec.size
Обязательный параметр
Запрошенный размер тома.Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-
-
объектstatus
-
массив строкstatus.actuallyAttachedToСписок узлов, к которым том фактически подключён в данный момент.
-
целочисленныйstatus.baselineGuaranteedMinimumDataRedundancy
Обязательный параметр
Уровень GMDR, которого datamesh достиг и который обязуется поддерживать. Вычисляется как min(qmr-1, config.GMDR): растёт по мере добавления участников и подтверждения qmr, не превышает целевого уровня конфигурации и снижается при уменьшении GMDR в конфигурации.По умолчанию:
0Допустимые значения:
0 <= X <= 2 -
массив объектовstatus.conditionsУсловия, отражающие текущее состояние тома.
-
строкаstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
строкаstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Максимальная длина:
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.configurationСнимок желаемой конфигурации тома.
-
целочисленныйstatus.configuration.failuresToTolerate
Обязательный параметр
Итоговое значение FTT (число переносимых отказов).Допустимые значения:
0 <= X <= 2 -
целочисленныйstatus.configuration.guaranteedMinimumDataRedundancy
Обязательный параметр
Итоговое значение GMDR (гарантированная минимальная избыточность данных).Допустимые значения:
0 <= X <= 2 -
строкаstatus.configuration.replicatedStoragePoolName
Обязательный параметр
Имя ресурса ReplicatedStoragePool.Минимальная длина:
1 -
строкаstatus.configuration.topology
Обязательный параметр
Итоговая топология размещения. Может быть: TransZonal, Zonal, Ignored.Допустимые значения:
TransZonal,Zonal,Ignored -
строкаstatus.configuration.volumeAccess
Обязательный параметр
Итоговый режим доступа к тому. Может быть: Local, EventuallyLocal, PreferablyLocal, Any.Допустимые значения:
Local,EventuallyLocal,PreferablyLocal,Any
-
-
целочисленныйstatus.configurationGenerationПоколение (generation) ReplicatedStorageClass, из которого была взята конфигурация.
-
целочисленныйstatus.configurationObservedGenerationПоколение ReplicatedStorageClass на момент последнего наблюдения/подтверждения конфигурации.
-
объектstatus.datamesh
Обязательный параметр
Вычисленная конфигурация datamesh (сети репликации) тома.-
массив объектовstatus.datamesh.members
Обязательный параметр
Список участников (реплик) datamesh.По умолчанию:
[]-
массив объектовstatus.datamesh.members.addressesСписок сетевых адресов DRBD данного участника.
-
объектstatus.datamesh.members.addresses.address
-
строкаstatus.datamesh.members.addresses.address.ipv4
Обязательный параметр
Максимальная длина:
15Шаблон:
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ -
целочисленныйstatus.datamesh.members.addresses.address.port
Обязательный параметр
Допустимые значения:
1025 <= X <= 65535
-
-
строкаstatus.datamesh.members.addresses.systemNetworkName
Максимальная длина:
64
-
-
булевыйstatus.datamesh.members.attachedДолжен ли участник быть подключён (в терминах DRBD — Primary).
По умолчанию:
false -
строкаstatus.datamesh.members.lvmVolumeGroupNameИмя ресурса LVMVolumeGroup, в котором должна быть размещена реплика.
Длина:
1..253Шаблон:
^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$ -
строкаstatus.datamesh.members.lvmVolumeGroupThinPoolNameИмя Thin-pool (для Storage Pool типа LVMThin).
Максимальная длина:
64 -
строкаstatus.datamesh.members.nameИмя участника (используется как ключ элемента списка). Имеет формат “prefix-N”, где N от 0 до 31.
Длина:
1..140 -
строкаstatus.datamesh.members.nodeNameИмя узла Kubernetes, на котором расположен участник.
Длина:
1..253 -
строкаstatus.datamesh.members.typeТип участника. Может быть: Diskful, LiminalDiskful, ShadowDiskful, LiminalShadowDiskful, TieBreaker, Access.
Допустимые значения:
Diskful,LiminalDiskful,ShadowDiskful,LiminalShadowDiskful,TieBreaker,Access -
строкаstatus.datamesh.members.zoneЗона, в которой расположен участник.
Максимальная длина:
64
-
-
булевыйstatus.datamesh.multiattachВключён ли режим множественного подключения (multiattach) для datamesh.
По умолчанию:
false -
целочисленныйstatus.datamesh.quorum
Обязательный параметр
Значение кворума для datamesh.По умолчанию:
0Допустимые значения:
0 <= X <= 13 -
целочисленныйstatus.datamesh.quorumMinimumRedundancy
Обязательный параметр
Минимальная избыточность, необходимая для кворума.По умолчанию:
0Допустимые значения:
0 <= X <= 8 -
строкаОбщий секрет для аутентификации соединений DRBD.
Максимальная длина:
256 -
строкаАлгоритм хеширования для общего секрета. Может быть: SHA256, SHA1, DummyForTest.
Допустимые значения:
SHA256,SHA1,DummyForTest -
строка или числоstatus.datamesh.size
Обязательный параметр
Желаемый размер тома.Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
массив строкstatus.datamesh.systemNetworkNames
Обязательный параметр
Список имён системных сетей, используемых для взаимодействия DRBD.По умолчанию:
[]-
строкаstatus.datamesh.systemNetworkNames.Элемент массива
Максимальная длина:
64
-
-
-
массив объектовstatus.datameshReplicaRequestsСписок ожидающих обработки запросов на изменение членства, поступивших от реплик.
-
строкаstatus.datameshReplicaRequests.firstObservedAtВремя, когда запрос был впервые замечен.
-
строкаstatus.datameshReplicaRequests.messageНеобязательное человекочитаемое сообщение о состоянии и ходе выполнения запроса.
Максимальная длина:
512 -
строкаstatus.datameshReplicaRequests.nameИмя реплики. Имеет формат “prefix-N”, где N от 0 до 31.
Длина:
1..123Шаблон:
^.+-([0-9]|[12][0-9]|3[01])$ -
объектstatus.datameshReplicaRequests.requestДетали запроса на изменение членства от реплики.
-
строкаstatus.datameshReplicaRequests.request.lvmVolumeGroupNameИмя ресурса LVMVolumeGroup для Diskful-реплик.
Минимальная длина:
1Шаблон:
^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$ -
строкаstatus.datameshReplicaRequests.request.operation
Обязательный параметр
Тип запрашиваемого изменения членства. Может быть: Join, Leave, ForceLeave, ForceDetach, ChangeRole, ChangeBackingVolume.Допустимые значения:
Join,Leave,ForceLeave,ForceDetach,ChangeRole,ChangeBackingVolume -
строкаstatus.datameshReplicaRequests.request.thinPoolNameИмя Thin-pool (необязательно, для Storage Pool типа LVMThin).
-
строкаstatus.datameshReplicaRequests.request.typeЦелевой тип реплики. Обязателен для операций Join и ChangeRole. Может быть: Diskful, Access, TieBreaker.
Допустимые значения:
Diskful,Access,TieBreaker
-
-
-
целочисленныйstatus.datameshRevision
Обязательный параметр
Счётчик, увеличиваемый при каждом изменении конфигурации datamesh. -
массив объектовstatus.datameshTransitionsСписок активных переходов (transitions) datamesh. Каждый переход имеет упорядоченный список шагов, объявляемых при создании и выполняемых последовательно.
-
строкаstatus.datameshTransitions.fromReplicaTypeИсходный тип реплики для переходов ChangeReplicaType. Обязателен для ChangeReplicaType и не задаётся для других типов.
Допустимые значения:
Diskful,Access,TieBreaker,ShadowDiskful -
массив строкstatus.datameshTransitions.fromSystemNetworkNamesИсходный набор имён системных сетей для переходов ChangeSystemNetworks.
-
строкаstatus.datameshTransitions.fromSystemNetworkNames.Элемент массива
Максимальная длина:
64
-
-
строкаstatus.datameshTransitions.groupГруппа параллелизма перехода. Задаётся контроллером при создании перехода и предназначена для наблюдаемости (объясняет, почему переход может ожидать). Может быть: Attachment, Emergency, Formation, Multiattach, Network, NonVotingMembership, Quorum, Resize, VotingMembership.
Допустимые значения:
Attachment,Emergency,Formation,Multiattach,Network,NonVotingMembership,Quorum,Resize,VotingMembership -
строкаstatus.datameshTransitions.planIDИдентификатор плана перехода, используемого для создания данного перехода.
Минимальная длина:
1 -
строкаstatus.datameshTransitions.replicaNameИмя реплики, к которой применяется переход. Обязателен для переходов AddReplica, RemoveReplica, ChangeReplicaType, Attach, Detach, ForceRemoveReplica, ForceDetach.
Длина:
1..123Шаблон:
^.+-([0-9]|[12][0-9]|3[01])$ -
строкаstatus.datameshTransitions.replicaTypeЦелевой тип реплики для переходов AddReplica, RemoveReplica, ForceRemoveReplica. Может быть: Diskful, Access, TieBreaker, ShadowDiskful.
Допустимые значения:
Diskful,Access,TieBreaker,ShadowDiskful -
массив объектовstatus.datameshTransitions.stepsУпорядоченный список шагов перехода. Шаги выполняются последовательно — активным одновременно может быть только один шаг.
-
строкаstatus.datameshTransitions.steps.completedAtВремя завершения шага (переход из Active в Completed).
-
целочисленныйstatus.datameshTransitions.steps.datameshRevisionРевизия datamesh, назначенная при активации шага (0, если шаг ещё не активирован или не изменяет ревизию).
-
строкаstatus.datameshTransitions.steps.messageСообщение о ходе выполнения или об ошибке для данного шага.
Максимальная длина:
512 -
строкаstatus.datameshTransitions.steps.nameЧеловекочитаемое имя шага.
Длина:
1..64 -
строкаstatus.datameshTransitions.steps.startedAtВремя начала выполнения шага (переход из Pending в Active).
-
строкаstatus.datameshTransitions.steps.statusТекущий статус шага. Может быть: Pending, Active, Completed.
По умолчанию:
PendingДопустимые значения:
Pending,Active,Completed
-
-
строкаstatus.datameshTransitions.toReplicaTypeЦелевой тип реплики для переходов ChangeReplicaType. Обязателен для ChangeReplicaType и не задаётся для других типов.
Допустимые значения:
Diskful,Access,TieBreaker,ShadowDiskful -
массив строкstatus.datameshTransitions.toSystemNetworkNamesЦелевой набор имён системных сетей для переходов ChangeSystemNetworks.
-
строкаstatus.datameshTransitions.toSystemNetworkNames.Элемент массива
Максимальная длина:
64
-
-
строкаstatus.datameshTransitions.typeТип перехода. Может быть: AddReplica, Attach, ChangeQuorum, ChangeReplicaType, ChangeSystemNetworks, Detach, DisableMultiattach, EnableMultiattach, ForceDetach, ForceRemoveReplica, Formation, RemoveReplica, RepairNetworkAddresses, ResizeVolume.
Допустимые значения:
AddReplica,Attach,ChangeQuorum,ChangeReplicaType,ChangeSystemNetworks,Detach,DisableMultiattach,EnableMultiattach,ForceDetach,ForceRemoveReplica,Formation,RemoveReplica,RepairNetworkAddresses,ResizeVolume
-
-
объектstatus.effectiveLayout
Обязательный параметр
Описывает реальный (в текущий момент) уровень защиты и здоровья datamesh на основе наблюдаемого состояния кластера.По умолчанию:
{ "reachableTieBreakers": 0, "reachableVoters": 0, "staleAgents": 0, "totalTieBreakers": 0, "totalVoters": 0, "upToDateVoters": 0 }-
целочисленныйstatus.effectiveLayout.failuresToTolerateЭффективный уровень FTT. Положительное значение — можно перенести столько отказов узлов; ноль — кворум есть, но любой отказ приведёт к его потере; отрицательное — кворум потерян, требуется столько дополнительных голосующих участников; не задано — определить невозможно.
-
целочисленныйstatus.effectiveLayout.guaranteedMinimumDataRedundancyЭффективный уровень GMDR. Положительное значение — можно потерять столько дисков без потери данных; ноль — ввод-вывод работает, но потеря диска угрожает данным; отрицательное — ввод-вывод заблокирован, требуется столько дополнительных актуальных реплик; не задано — определить невозможно.
-
строкаstatus.effectiveLayout.messageЧеловекочитаемое описание состояния эффективного layout’а.
-
целочисленныйstatus.effectiveLayout.reachableTieBreakers
Обязательный параметр
Число TieBreaker’ов, подтверждённо доступных (агент готов или соединение видно пирами как Connected).По умолчанию:
0 -
целочисленныйstatus.effectiveLayout.reachableVoters
Обязательный параметр
Число голосующих участников, подтверждённо доступных (собственный Quorum=true или соединение видно пирами как Connected).По умолчанию:
0 -
целочисленныйstatus.effectiveLayout.staleAgents
Обязательный параметр
Число участников с устаревшими данными агента (AgentNotReady или кворум ещё не сообщён). Такие участники по возможности реконструируются из наблюдений пиров.По умолчанию:
0 -
целочисленныйstatus.effectiveLayout.totalTieBreakers
Обязательный параметр
Общее число участников типа TieBreaker.По умолчанию:
0 -
целочисленныйstatus.effectiveLayout.totalVoters
Обязательный параметр
Общее число голосующих участников (Diskful и его liminal-варианты).По умолчанию:
0 -
целочисленныйstatus.effectiveLayout.upToDateVoters
Обязательный параметр
Число голосующих участников с актуальным (UpToDate) нижележащим томом.По умолчанию:
0
-
-
массив объектовstatus.eligibleNodesViolationsСписок реплик, размещённых на узлах, не удовлетворяющих ограничениям подходящих (eligible) узлов.
-
строкаstatus.eligibleNodesViolations.nodeNameУзел, на котором размещена реплика.
Максимальная длина:
253 -
строкаstatus.eligibleNodesViolations.reasonПричина, по которой данное размещение нарушает ограничения подходящих узлов.
-
строкаstatus.eligibleNodesViolations.replicaNameИмя ресурса ReplicatedVolumeReplica.
Максимальная длина:
253
-
-
строкаstatus.membershipLayoutMembershipLayout is a short, human-readable representation of the actual datamesh layout (diskful voters and tie-breakers), e.g. “3D” or “2D+1TB”. Derived from the datamesh members; freely produced (not an enum). See the MembershipLayoutConverged condition for whether it matches the intended layout. Unset (absent) while the layout has not been computed yet: during formation the controller does not report a layout at all. An empty string is never published.
-
строка или числоstatus.sizeФактическая полезная ёмкость тома в байтах. Не задаётся, когда у тома нет готовых реплик.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-