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

Работоспособность модуля гарантируется только при соблюдении системных требований. Использование в других условиях возможно, но стабильная работа в таких случаях не гарантируется.

Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.

DRBDMapper

Short names: drbdm

Scope: Cluster
Version: v1alpha1

Описывает соответствие между нижележащим блочным устройством на узле и верхним (создаваемым) блочным устройством. Используется агентом для управления device-mapper-устройством поверх нижележащего устройства на конкретном узле.
  • apiVersion
    строка
    APIVersion 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
  • kind
    строка
    Kind 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.lastTransitionTime
        строка
        lastTransitionTime 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.message
        строка
        message is a human readable message indicating details about the transition. This may be an empty string.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        observedGeneration 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.reason
        строка
        reason 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.status
        строка
        status of the condition, one of True, False, Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        type 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

Интерфейс для управления операциями над DRBD на уровне узла кластера. Ресурс создаётся для выполнения обслуживающей операции на конкретном узле; агент на этом узле выполняет операцию и отражает результат в статусе.
  • apiVersion
    строка
    APIVersion 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
  • kind
    строка
    Kind 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

Интерфейс для управления операциями над DRBD-ресурсом на конкретном узле кластера. Ресурс создаётся для выполнения обслуживающей операции над DRBD-ресурсом; агент на указанном узле выполняет операцию и отражает результат в статусе.
  • apiVersion
    строка
    APIVersion 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
  • kind
    строка
    Kind 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

Низкоуровневое представление DRBD-ресурса на конкретном узле кластера. Ресурс управляется агентом и описывает желаемую и фактическую конфигурацию DRBD-устройства, его пиров и репликации. Не предназначен для ручного создания и редактирования.
  • apiVersion
    строка
    APIVersion 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
  • kind
    строка
    Kind 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

      • spec.peers.sharedSecret
        строка
        Общий секрет для аутентификации соединения с пиром.

        Максимальная длина: 256

      • spec.peers.sharedSecretAlg
        строка
        Алгоритм хеширования для общего секрета 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.lastTransitionTime
        строка
        lastTransitionTime 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.message
        строка
        message is a human readable message indicating details about the transition. This may be an empty string.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        observedGeneration 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.reason
        строка
        reason 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.status
        строка
        status of the condition, one of True, False, Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        type 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.deviceUUID
      строка
      16-значный шестнадцатеричный идентификатор (в верхнем регистре), связывающий данный 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

Интерфейс управления StorageСlass для CSI-драйвера replicated.csi.storage.deckhouse.io. Ручное создание StorageClass для данного драйвера запрещено.
  • apiVersion
    строка
    APIVersion 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
  • kind
    строка
    Kind 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.configurationRolloutStrategy
      объект
      ConfigurationRolloutStrategy defines how configuration changes are applied to existing volumes. When not specified, the controller fills the default (RollingUpdate, maxParallel=5).
      • spec.configurationRolloutStrategy.rollingUpdate
        объект
        RollingUpdate 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.eligibleNodesConflictResolutionStrategy
      объект
      EligibleNodesConflictResolutionStrategy defines how the controller handles volumes with eligible nodes conflicts. When not specified, the controller fills the default (RollingRepair, maxParallel=5).
      • spec.eligibleNodesConflictResolutionStrategy.rollingRepair
        объект
        RollingRepair 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.eligibleNodesPolicy
      объект
      EligibleNodesPolicy 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.failuresToTolerate
      целочисленный
      FailuresToTolerate (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.guaranteedMinimumDataRedundancy
      целочисленный
      GuaranteedMinimumDataRedundancy (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.nodeLabelSelector
      объект
      NodeLabelSelector 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.matchExpressions
        массив объектов
        matchExpressions is a list of label selector requirements. The requirements are ANDed.
        • spec.nodeLabelSelector.matchExpressions.key
          строка
          key is the label key that the selector applies to.
        • spec.nodeLabelSelector.matchExpressions.operator
          строка
          operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
        • spec.nodeLabelSelector.matchExpressions.values
          массив строк
          values 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.matchLabels
        объект
        matchLabels 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.storage
      объект
      Storage 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.name
          строка
          Selected LVMVolumeGroup resource’s name.

          Минимальная длина: 1

          Шаблон: ^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$

        • spec.storage.lvmVolumeGroups.thinPoolName
          строка
          Selected 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

  • status
    объект
    Displays current information about the Storage Class.
    • status.conditions
      массив объектов
      • status.conditions.lastTransitionTime
        строка
        lastTransitionTime 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.message
        строка
        message is a human readable message indicating details about the transition. This may be an empty string.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        observedGeneration 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.reason
        строка
        reason 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.status
        строка
        status of the condition, one of True, False, Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        type 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
      объект
      Configuration 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.configurationGeneration
      целочисленный
      ConfigurationGeneration is the RSC generation when configuration was accepted.
    • status.message
      строка
      Message is a human-readable description of the current phase.
    • status.phase
      строка

      Общее текущее состояние StorageClass. Может быть:

      • Failed (если контроллер получил некорректную конфигурацию ресурса или возникли ошибки в процессе выполнения операции)
      • Created (если StorageClass создан успешно)

      Допустимые значения: Ready, WaitingForStoragePool, InsufficientNodes, InvalidConfiguration, RollingOut, PartiallyAligned, Terminating

    • status.storagePoolBasedOnGeneration
      целочисленный
      StoragePoolBasedOnGeneration is the RSC generation when storagePoolName was computed.
    • status.storagePoolEligibleNodesRevision
      целочисленный
      StoragePoolEligibleNodesRevision tracks RSP’s eligibleNodesRevision for change detection.
    • status.storagePoolName
      строка
      StoragePoolName 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.aligned
        целочисленный
        Aligned is the number of volumes whose configuration matches the storage class.
      • status.volumes.inConflictWithEligibleNodes
        целочисленный
        InConflictWithEligibleNodes is the number of volumes with replicas on non-eligible nodes.
      • status.volumes.pendingObservation
        целочисленный
        PendingObservation is the number of volumes that haven’t observed current RSC configuration or eligible nodes.
      • status.volumes.staleConfiguration
        целочисленный
        StaleConfiguration is the number of volumes with outdated configuration.
      • status.volumes.total
        целочисленный
        Total is the total number of volumes.
      • status.volumes.usedStoragePoolNames
        массив строк
        UsedStoragePoolNames is a sorted list of storage pool names currently used by volumes.

ReplicatedStoragePool

Short names: rsp

Scope: Cluster
Version: v1alpha1

Интерфейс для управления Storage Pool в бэкенде LINSTOR.
  • apiVersion
    строка
    APIVersion 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
  • kind
    строка
    Kind 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
    объект
    Defines 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.nodeLabelSelector
      объект
      NodeLabelSelector 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.matchExpressions
        массив объектов
        matchExpressions is a list of label selector requirements. The requirements are ANDed.
        • spec.nodeLabelSelector.matchExpressions.key
          строка
          key is the label key that the selector applies to.
        • spec.nodeLabelSelector.matchExpressions.operator
          строка
          operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
        • spec.nodeLabelSelector.matchExpressions.values
          массив строк
          values 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.matchLabels
        объект
        matchLabels 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.zones
      массив строк
      Array of zones the Storage pool’s volumes should be replicated in.
      • spec.zones.Элемент массива
        строка

        Максимальная длина: 63

  • status
    объект
    Displays current information about the state of the LINSTOR storage pool.
    • status.conditions
      массив объектов
      • status.conditions.lastTransitionTime
        строка
        lastTransitionTime 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.message
        строка
        message is a human readable message indicating details about the transition. This may be an empty string.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        observedGeneration 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.reason
        строка
        reason 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.status
        строка
        status of the condition, one of True, False, Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        type 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.eligibleNodes
      массив объектов
      EligibleNodes lists nodes eligible for this storage pool.
      • status.eligibleNodes.agentReady
        булевый
        AgentReady indicates whether the sds-replicated-volume agent on this node is ready.
      • status.eligibleNodes.lvmVolumeGroups
        массив объектов
        LVMVolumeGroups lists LVM volume groups available on this node.
        • status.eligibleNodes.lvmVolumeGroups.name
          строка
          Name is the LVMVolumeGroup resource name.

          Максимальная длина: 253

        • status.eligibleNodes.lvmVolumeGroups.ready
          булевый
          Ready indicates whether the LVMVolumeGroup (and its thin pool, if applicable) is ready.
        • status.eligibleNodes.lvmVolumeGroups.thinPoolName
          строка
          ThinPoolName is the thin pool name (for LVMThin storage pools).

          Максимальная длина: 128

        • status.eligibleNodes.lvmVolumeGroups.unschedulable
          булевый
          Unschedulable indicates whether new volumes should not use this volume group.
      • status.eligibleNodes.nodeName
        строка
        NodeName is the Kubernetes node name.

        Максимальная длина: 253

      • status.eligibleNodes.nodeReady
        булевый
        NodeReady indicates whether the Kubernetes node is ready.
      • status.eligibleNodes.unschedulable
        булевый
        Unschedulable indicates whether new volumes should not be scheduled to this node.
      • status.eligibleNodes.zoneName
        строка
        ZoneName is the zone this node belongs to.

        Максимальная длина: 63

    • status.eligibleNodesRevision
      целочисленный
      EligibleNodesRevision is incremented when eligible nodes change.
    • status.message
      строка
      Message 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.usedBy
      объект
      UsedBy tracks which resources are using this storage pool.
      • status.usedBy.replicatedStorageClassNames
        массив строк
        ReplicatedStorageClassNames lists RSC names using this storage pool.
        • status.usedBy.replicatedStorageClassNames.Элемент массива
          строка

          Максимальная длина: 253

ReplicatedVolumeAttachment

Short names: rva

Scope: Cluster
Version: v1alpha1

ReplicatedVolumeAttachment описывает намерение и состояние подключения (attachment) ReplicatedVolume к конкретному узлу кластера.
  • apiVersion
    строка
    APIVersion 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
  • kind
    строка
    Kind 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.lastTransitionTime
        строка
        lastTransitionTime 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.message
        строка
        message is a human readable message indicating details about the transition. This may be an empty string.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        observedGeneration 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.reason
        строка
        reason 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.status
        строка
        status of the condition, one of True, False, Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        type 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

ReplicatedVolumeReplica описывает отдельную реплику ReplicatedVolume: её размещение на узле, тип и наблюдаемое состояние репликации.
  • apiVersion
    строка
    APIVersion 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
  • kind
    строка
    Kind 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.lastTransitionTime
        строка
        lastTransitionTime 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.message
        строка
        message is a human readable message indicating details about the transition. This may be an empty string.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        observedGeneration 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.reason
        строка
        reason 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.status
        строка
        status of the condition, one of True, False, Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        type 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

ReplicatedVolume описывает реплицируемый том: его размер, способ конфигурации (из ReplicatedStorageClass или заданный вручную) и наблюдаемое состояние репликации (datamesh, реплики, кворум, подключения).
  • apiVersion
    строка
    APIVersion 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
  • kind
    строка
    Kind 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
    объект
    Auto 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.lastTransitionTime
        строка
        lastTransitionTime 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.message
        строка
        message is a human readable message indicating details about the transition. This may be an empty string.

        Максимальная длина: 32768

      • status.conditions.observedGeneration
        целочисленный
        observedGeneration 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.reason
        строка
        reason 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.status
        строка
        status of the condition, one of True, False, Unknown.

        Допустимые значения: True, False, Unknown

      • status.conditions.type
        строка
        type 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

      • status.datamesh.sharedSecret
        строка
        Общий секрет для аутентификации соединений DRBD.

        Максимальная длина: 256

      • status.datamesh.sharedSecretAlg
        строка
        Алгоритм хеширования для общего секрета. Может быть: 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.membershipLayout
      строка
      MembershipLayout 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]+))))?$