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

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

ClusterVirtualImage

Scope: Cluster
Version: v1alpha2

Описывает образ диска виртуальной машины, который может использоваться в качестве источника данных для новых ресурсов VirtualDisks или установочный образ (iso), который может быть смонтирован в ресурсе VirtualMachines напрямую. Данный тип ресурса доступен для всех пространств имен в кластере.

Этот ресурс не может быть изменён после создания.

После появления в кластере этого ресурса создаётся образ контейнера, который хранится в специальном реестре контейнеров Deckhouse Virtualization Container Registry (DVCR).

Важно: Поле metadata.name должно соответствовать правилам именования объектов Kubernetes и не должно превышать 48 символов.

  • 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.dataSource
      объект

      Обязательный параметр

      Тип источника, из которого будет создан образ.
      • spec.dataSource.containerImage
        объект
        Использование образа, который хранится во внешнем реестре контейнеров. Поддерживаются только реестры контейнеров с включённым протоколом TLS. Чтобы предоставить собственную цепочку центров сертификации, используйте поле caBundle.
        • spec.dataSource.containerImage.caBundle
          строка
          Цепочка сертификатов в формате Base64 для проверки подключения к реестру контейнеров.

          Пример:

          caBundle: YWFhCg==
          
        • spec.dataSource.containerImage.image
          строка

          Обязательный параметр

          Путь к образу в реестре контейнеров.

          Шаблон: ^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$

          Пример:

          image: registry.example.com/images/slackware:15
          
        • spec.dataSource.containerImage.imagePullSecret
          объект
          • spec.dataSource.containerImage.imagePullSecret.name
            строка
            Имя секрета, содержащего учётные данные для подключения к реестру контейнеров.
          • spec.dataSource.containerImage.imagePullSecret.namespace
            строка
            Пространство имён, в котором находится imagePullSecret.
      • spec.dataSource.http
        объект

        Создание образа из файла, размещённого на указанном URL-адресе. Поддерживаемые схемы:

        • HTTP;
        • HTTPS.

        Для схемы HTTPS есть возможность пропустить проверку TLS.

        • spec.dataSource.http.caBundle
          строка
          Цепочка сертификатов в формате Base64 для проверки TLS-сертификата сервера, на котором размещается файл.

          Пример:

          caBundle: YWFhCg==
          
        • spec.dataSource.http.checksum
          объект
          Контрольная сумма файла для проверки целостности и отсутствия изменений в загруженных данных. Файл должен соответствовать всем указанным контрольным суммам.
          • spec.dataSource.http.checksum.md5
            строка

            Длина: 32..32

            Шаблон: ^[0-9a-fA-F]{32}$

            Пример:

            md5: f3b59bed9f91e32fac1210184fcff6f5
            
          • spec.dataSource.http.checksum.sha256
            строка

            Длина: 64..64

            Шаблон: ^[0-9a-fA-F]{64}$

            Пример:

            sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
            
        • spec.dataSource.http.url
          строка

          Обязательный параметр

          URL-адрес, указывающий на файл для создания образа. Допустимые форматы файла:

          • qcow2;
          • vmdk;
          • vdi;
          • iso;
          • raw.

          Файл может быть сжат в архив в одном из следующих форматов:

          • gz;
          • xz.

          Шаблон: ^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$

          Пример:

          url: https://mirror.example.com/images/slackware-15.qcow.gz
          
      • spec.dataSource.objectRef
        объект
        Использование существующего ресурса VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot для создания образа.
        • spec.dataSource.objectRef.kind
          строка

          Обязательный параметр

          Ссылка на существующий ресурс VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.

          Допустимые значения: ClusterVirtualImage, VirtualImage, VirtualDisk, VirtualDiskSnapshot

        • spec.dataSource.objectRef.name
          строка

          Обязательный параметр

          Имя существующего ресурса VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.

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

        • spec.dataSource.objectRef.namespace
          строка
          Пространство имён, в котором расположен ресурс VirtualImage, VirtualDisk или VirtualDiskSnapshot.
      • spec.dataSource.type
        строка

        Обязательный параметр

        Доступные типы источников для создания образа:

        • HTTP — из файла, опубликованного на HTTP/HTTPS-сервере;
        • ContainerImage — из другого образа в реестре контейнеров;
        • ObjectRef — из существующего ресурса;
        • Upload — загрузить вручную.

        Допустимые значения: HTTP, ContainerImage, ObjectRef, Upload

  • status
    объект
    • status.cdrom
      булевый
      Определяет, выполнен ли образ в формате, который должен быть смонтирован как устройство CD-ROM, таком как iso и др.
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

        Максимальная длина: 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.downloadSpeed
      объект
      Скорость загрузки образа из внешнего источника. Появляется только на этапе Provisioning.
      • status.downloadSpeed.avg
        строка
        Средняя скорость загрузки.

        Пример:

        avg: 1 Mbps
        
      • status.downloadSpeed.avgBytes
        строка
        Средняя скорость загрузки в байтах в секунду.

        Пример:

        avgBytes: 1012345
        
      • status.downloadSpeed.current
        строка
        Текущая скорость загрузки.

        Пример:

        current: 5 Mbps
        
      • status.downloadSpeed.currentBytes
        строка
        Текущая скорость загрузки в байтах в секунду.

        Пример:

        currentBytes: 5123456
        
    • status.format
      строка
      Обнаруженный формат образа.
    • status.imageUploadURLs
      объект
      • status.imageUploadURLs.external
        строка
        Команда для загрузки образа с использованием Ingress вне кластера.
      • status.imageUploadURLs.inCluster
        строка
        Команда для загрузки образа с использованием Service внутри кластера.
    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Текущее состояние ресурса ClusterVirtualImage:

      • Pending - ресурс был создан и находится в очереди ожидания;
      • Provisioning - идёт процесс создания ресурса: копирование, загрузка или создание образа;
      • WaitForUserUpload - ожидание загрузки образа пользователем. Путь для загрузки образа указывается в .status.uploadCommand;
      • Ready - ресурс создан и готов к использованию;
      • Failed - при создании ресурса произошла ошибка;
      • ImageLost — образ отсутствует в DVCR. Ресурс не может быть использован;
      • Terminating - ресурс находится в процессе удаления.

      Допустимые значения: Pending, Provisioning, WaitForUserUpload, Ready, Failed, Terminating, ImageLost

    • status.progress
      строка
      Ход копирования образа из источника в DVCR. Отображается только на этапе Provisioning.
    • status.size
      объект
      Обнаруженные данные о размере образа.
      • status.size.stored
        строка
        Размер образа в DVCR или PersistentVolumeClaim (PVC) в удобочитаемом формате.

        Пример:

        stored: 199M
        
      • status.size.storedBytes
        строка
        Размер образа в DVCR или (PVC) в байтах.

        Пример:

        storedBytes: 199001234
        
      • status.size.unpacked
        строка
        Размер распакованного образа в удобочитаемом формате.

        Пример:

        unpacked: 1G
        
      • status.size.unpackedBytes
        строка
        Размер распакованного образа в байтах.

        Пример:

        unpackedBytes: 1000000234
        
    • status.sourceUID
      строка
      UID источника (VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot), использованного при создании кластерного виртуального образа.
    • status.target
      объект
      • status.target.registryURL
        строка
        Образ, созданный в DVCR.

        Пример:

        registryURL: dvcr.<dvcr-namespace>.svc/cvi/<image-name>:latest
        
    • status.uploadCommand
      строка
      Устаревшее поле. Используйте imageUploadURLs.
    • status.usedInNamespaces
      массив строк
      Список пространств имён в которых используется образ.

NodeUSBDevice

Scope: Cluster
Version: v1alpha2

Представляет USB-устройство, обнаруженное на конкретном узле в кластере. Этот ресурс создаётся автоматически системой DRA (Dynamic Resource Allocation), когда USB-устройство обнаруживается на узле.
  • apiVersion
    строка
    Определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    строка
    Строковое значение, представляющее REST-ресурс, который представляет этот объект. Серверы могут выводить это из конечной точки, на которую клиент отправляет запросы. Не может быть обновлено. В формате CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    объект
  • spec
    объект
    • spec.assignedNamespace
      строка
      Неймспейс, в котором разрешено использование устройства. По умолчанию создаётся с пустым значением “”. При установке значения создаётся соответствующий ресурс USBDevice в этом неймспейсе.

      По умолчанию: ‘’

  • status
    объект
    • status.attributes
      объект
      Все атрибуты устройства, полученные через DRA для устройства.
      • status.attributes.bcd
        строка
        BCD (Binary Coded Decimal) версия устройства.
      • status.attributes.bus
        строка
        Номер USB-шины.
      • status.attributes.deviceNumber
        строка
        Номер USB-устройства на шине.
      • status.attributes.devicePath
        строка
        Путь к устройству в файловой системе.
      • status.attributes.major
        целочисленный
        Основной номер устройства.
      • status.attributes.manufacturer
        строка
        Название производителя устройства.
      • status.attributes.minor
        целочисленный
        Вспомогательный номер устройства.
      • status.attributes.name
        строка
        Имя устройства.
      • status.attributes.nodeName
        строка
        Имя узла, на котором находится устройство.
      • status.attributes.product
        строка
        Название продукта устройства.
      • status.attributes.productID
        строка
        USB product ID в шестнадцатеричном формате.
      • status.attributes.serial
        строка
        Серийный номер устройства.
      • status.attributes.speed
        целочисленный
        Скорость устройства.
      • status.attributes.vendorID
        строка
        USB vendor ID в шестнадцатеричном формате.
    • status.conditions
      массив объектов
      Последние доступные наблюдения текущего состояния объекта.
      • status.conditions.lastTransitionTime
        строка
        Время последнего перехода условия из одного состояния в другое. Это должно быть время, когда изменилось базовое условие. Если это неизвестно, то допустимо использовать время, когда изменилось поле API.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробностями о переходе. Это может быть пустая строка.

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

      • status.conditions.observedGeneration
        целочисленный
        Представляет .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedGeneration имеет значение 9, то условие устарело по отношению к текущему состоянию экземпляра.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка

        Содержит программный идентификатор, указывающий причину последнего перехода условия. Производители конкретных типов условий могут определять ожидаемые значения и значения для этого поля, и являются ли эти значения гарантированным API. Значение должно быть строкой в формате CamelCase. Это поле не может быть пустым.

        Для типа условия Ready возможные значения:

        • Ready — устройство готово к использованию;
        • NotReady — устройство существует в системе, но не готово к использованию;
        • NotFound — устройство отсутствует на хосте.

        Для типа условия Assigned возможные значения:

        • Assigned — неймспейс назначен для устройства и создан соответствующий ресурс USBDevice в этом неймспейсе;
        • Available — для устройства не назначен неймспейс;
        • InProgress — подключение устройства к неймспейсу выполняется (создание ресурса USBDevice).

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        статус условия, одно из True, False, Unknown.

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

      • status.conditions.type
        строка

        Тип условия в формате CamelCase или в формате foo.example.com/CamelCase. Поддерживаемые типы условий:

        • Ready — указывает, готово ли устройство к использованию. Когда reason — “Ready”, status — “True”. Когда reason — “NotReady” или “NotFound”, status — “False”. При переходе в NotFound ресурс остаётся в кластере, администратор может удалить его вручную. На основе lastTransitionTime может быть реализован Garbage Collector для автоматической очистки.
        • Assigned — указывает, назначен ли неймспейс для устройства. Когда reason — “Assigned”, status — “True”. Когда reason — “Available” или “InProgress”, status — “False”.

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

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.nodeName
      строка
      Имя узла, на котором находится USB-устройство.
    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.

USBDevice

Scope: Namespaced
Version: v1alpha2

Представляет USB-устройство, доступное для подключения к виртуальным машинам в заданном неймспейсе.
  • apiVersion
    строка
    Определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  • kind
    строка
    Строковое значение, представляющее REST-ресурс, который представляет этот объект. Серверы могут выводить это из конечной точки, на которую клиент отправляет запросы. Не может быть обновлено. В формате CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  • metadata
    объект
  • status
    объект
    Наблюдаемое состояние USBDevice.
    • status.attributes
      объект
      Все атрибуты устройства, полученные через DRA для устройства.
      • status.attributes.bcd
        строка
        BCD (Binary Coded Decimal) версия устройства.
      • status.attributes.bus
        строка
        Номер USB-шины.
      • status.attributes.deviceNumber
        строка
        Номер USB-устройства на шине.
      • status.attributes.devicePath
        строка
        Путь к устройству в файловой системе.
      • status.attributes.major
        целочисленный
        Основной номер устройства.
      • status.attributes.manufacturer
        строка
        Название производителя устройства.
      • status.attributes.minor
        целочисленный
        Вспомогательный номер устройства.
      • status.attributes.name
        строка
        Имя устройства.
      • status.attributes.nodeName
        строка
        Имя узла, на котором находится устройство.
      • status.attributes.product
        строка
        Название продукта устройства.
      • status.attributes.productID
        строка
        USB product ID в шестнадцатеричном формате.
      • status.attributes.serial
        строка
        Серийный номер устройства.
      • status.attributes.speed
        целочисленный
        Скорость устройства.
      • status.attributes.vendorID
        строка
        USB vendor ID в шестнадцатеричном формате.
    • status.conditions
      массив объектов
      Последние доступные наблюдения текущего состояния объекта.
      • status.conditions.lastTransitionTime
        строка
        Время последнего перехода условия из одного состояния в другое. Это должно быть время, когда изменилось базовое условие. Если это неизвестно, то допустимо использовать время, когда изменилось поле API.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробностями о переходе. Может быть пустой строкой.

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

      • status.conditions.observedGeneration
        целочисленный
        Представляет .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedGeneration имеет значение 9, то условие устарело по отношению к текущему состоянию экземпляра.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Содержит программный идентификатор, указывающий причину последнего перехода условия. Производители конкретных типов условий могут определять ожидаемые значения и значения для этого поля, и являются ли эти значения гарантированным API. Значение должно быть строкой в формате CamelCase. Поле не может быть пустым.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия.

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

      • status.conditions.type
        строка
        Тип условия в формате CamelCase или в формате 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.nodeName
      строка
      Имя узла, на котором находится USB-устройство.
    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.

VirtualDisk

Scope: Namespaced
Version: v1alpha2

Ресурс VirtualDisk описывает желаемую конфигурацию диска виртуальной машины. VirtualDisk можно смонтировать в виртуальной машине статически, указав его в списке дисков .spec.blockDeviceRefs, или «на лету» – с помощью ресурса VirtualMachineBlockDeviceAttachments.

После создания VirtualDisk в .spec.persistentVolumeClaim можно изменить поля size и storageClassName. Все остальные поля неизменяемы.

Важно: Поле metadata.name должно соответствовать правилам именования объектов Kubernetes и не должно превышать 60 символов.

  • 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.dataSource
      объект
      Тип источника, из которого будет создан диск. Если источник (.spec.dataSource) отсутствует, будет создан пустой диск.
      • spec.dataSource.containerImage
        объект
        Использование образа, который хранится во внешнем реестре контейнеров. Поддерживаются только реестры контейнеров с включённым протоколом TLS. Чтобы предоставить собственную цепочку центров сертификации, используйте поле caBundle.
        • spec.dataSource.containerImage.caBundle
          строка
          Цепочка сертификатов в формате Base64 для проверки подключения к реестру контейнеров.

          Пример:

          caBundle: YWFhCg==
          
        • spec.dataSource.containerImage.image
          строка

          Обязательный параметр

          Путь к образу в реестре контейнеров.

          Шаблон: ^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$

          Пример:

          image: registry.example.com/images/slackware:15
          
        • spec.dataSource.containerImage.imagePullSecret
          объект
          • spec.dataSource.containerImage.imagePullSecret.name
            строка
            Имя секрета, содержащего учётные данные для подключения к реестру контейнеров.
      • spec.dataSource.http
        объект

        Создание диска из файла, размещённого на указанном URL-адресе. Поддерживаемые схемы:

        • HTTP;
        • HTTPS.

        Для схемы HTTPS есть возможность пропустить проверку TLS.

        • spec.dataSource.http.caBundle
          строка
          Цепочка сертификатов в формате Base64 для проверки TLS-сертификата сервера, на котором размещается файл.

          Пример:

          caBundle: YWFhCg==
          
        • spec.dataSource.http.checksum
          объект
          Контрольная сумма файла для проверки целостности и отсутствия изменений в загруженных данных. Файл должен соответствовать всем указанным контрольным суммам.
          • spec.dataSource.http.checksum.md5
            строка

            Длина: 32..32

            Шаблон: ^[0-9a-fA-F]{32}$

            Пример:

            md5: f3b59bed9f91e32fac1210184fcff6f5
            
          • spec.dataSource.http.checksum.sha256
            строка

            Длина: 64..64

            Шаблон: ^[0-9a-fA-F]{64}$

            Пример:

            sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
            
        • spec.dataSource.http.url
          строка

          Обязательный параметр

          URL-адрес, указывающий на файл для создания образа. Допустимые форматы файла:

          • qcow2;
          • vmdk;
          • vdi;
          • iso;
          • raw.

          Файл может быть сжат в архив в одном из следующих форматов:

          • gz;
          • xz.

          Шаблон: ^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$

          Пример:

          url: https://mirror.example.com/images/slackware-15.qcow.gz
          
      • spec.dataSource.objectRef
        объект
        Использование существующего ресурса VirtualImage, ClusterVirtualImage или VirtualDiskSnapshot для создания диска.
        • spec.dataSource.objectRef.kind
          строка

          Обязательный параметр

          Ссылка на существующий ресурс VirtualImage, ClusterVirtualImage или VirtualDiskSnapshot.

          Допустимые значения: ClusterVirtualImage, VirtualImage, VirtualDiskSnapshot

        • spec.dataSource.objectRef.name
          строка

          Обязательный параметр

          Имя существующего ресурса VirtualImage, ClusterVirtualImage или VirtualDiskSnapshot.

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

      • spec.dataSource.type
        строка

        Доступные типы источников для создания диска:

        • HTTP — из файла, опубликованного на HTTP/HTTPS-сервере;
        • ContainerImage — из образа в реестре контейнеров;
        • ObjectRef — из существующего ресурса;
        • Upload — загрузить образ диска вручную.

        Допустимые значения: HTTP, ContainerImage, ObjectRef, Upload

    • spec.persistentVolumeClaim
      объект
      Настройки для создания PersistentVolumeClaim (PVC) для хранения диска.
      • spec.persistentVolumeClaim.size
        строка или число

        Желаемый размер PVC для хранения диска. Если диск создается из образа, размер PVC должен быть не меньше размера исходного образа в распакованном состоянии.

        Данный параметр можно опустить, если заполнен блок .spec.dataSource. В этом случае контроллер определит размер диска автоматически, на основе размера распакованного образа из источника указанного в .spec.dataSource.

        Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

      • spec.persistentVolumeClaim.storageClassName
        строка

        Имя StorageClass, необходимого для PVC. Подробнее об использовании StorageClass для PVC: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.

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

        Особенности диска и поведение виртуальной машины зависят от выбранного StorageClass.

        Параметр VolumeBindingMode в StorageClass влияет на процесс создания дисков. Допустимые значения:

        • Immediate - диск будет создан и доступен для использования сразу после создания;
        • WaitForFirstConsumer - диск будет создан при первом использовании на узле, где будет запущена виртуальная машина.

        StorageClass поддерживает различные настройки хранения:

        • создание блочного устройства (Block) или файловой системы (FileSystem);
        • множественный доступ (ReadWriteMany) или единичный доступ (ReadWriteOnce). ReadWriteMany-диски поддерживают множественный доступ, что позволяет выполнять «живую» миграцию виртуальных машин. В отличие от них, ReadWriteOnce-диски, ограниченные доступом только с одного узла, не могут обеспечить такую возможность.

        Для известных типов хранилищ Deckhouse самостоятельно определит наиболее эффективные настройки при создании дисков (в порядке убывания приоритетов):

        1. Block + ReadWriteMany;
        2. FileSystem + ReadWriteMany;
        3. Block + ReadWriteOnce;
        4. FileSystem + ReadWriteOnce.
  • status
    объект
    • status.attachedToVirtualMachines
      массив объектов
      Список виртуальных машин, использующих данный диск.

      Пример:

      attachedToVirtualMachines:
      - name: VM100
      
      • status.attachedToVirtualMachines.mounted
        булевый
        Flag indicating that VirtualDisk is currently being used by this attached VirtualMachine.
      • status.attachedToVirtualMachines.name
        строка
        Name of attached VirtualMachine.
    • status.capacity
      строка
      Ёмкость PVC в удобочитаемом формате.

      Пример:

      capacity: 50G
      
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

        Максимальная длина: 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.downloadSpeed
      объект
      Скорость загрузки образа из внешнего источника. Появляется только на этапе Provisioning.
      • status.downloadSpeed.avg
        строка
        Средняя скорость загрузки.

        Пример:

        avg: 1 Mbps
        
      • status.downloadSpeed.avgBytes
        строка
        Средняя скорость загрузки в байтах в секунду.

        Пример:

        avgBytes: 1012345
        
      • status.downloadSpeed.current
        строка
        Текущая скорость загрузки.

        Пример:

        current: 5 Mbps
        
      • status.downloadSpeed.currentBytes
        строка
        Текущая скорость загрузки в байтах в секунду.

        Пример:

        currentBytes: 5123456
        
    • status.imageUploadURLs
      объект
      • status.imageUploadURLs.external
        строка
        Команда для загрузки образа с использованием Ingress вне кластера.
      • status.imageUploadURLs.inCluster
        строка
        Команда для загрузки образа с использованием Service внутри кластера.
    • status.migrationState
      объект
      Информация о происходящей миграции диска.
      • status.migrationState.endTimestamp
        строка
        Время окончания миграции.
      • status.migrationState.message
        строка
        Подробное сообщение об ошибке миграции.
      • status.migrationState.result
        строка
        Результат миграции.

        Допустимые значения: Succeeded, Failed

      • status.migrationState.sourcePVC
        строка
        Имя исходного PersistentVolumeClaim.
      • status.migrationState.startTimestamp
        строка
        Время начала миграции.
      • status.migrationState.targetPVC
        строка
        Имя целевого PersistentVolumeClaim.
    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Текущее состояние ресурса VirtualDisk:

      • Pending — ресурс был создан и находится в очереди ожидания;
      • Provisioning — идёт процесс создания ресурса: копирование, загрузка или создание диска;
      • WaitForUserUpload — ожидание загрузки образа пользователем. Путь для загрузки образа указывается в .status.uploadCommand;
      • WaitForFirstConsumer - ожидание пока использующая данный диск виртуальная машина не будет назначена на узел;
      • Ready — ресурс создан и готов к использованию;
      • Resizing — идёт процесс увеличения размера диска;
      • Failed — при создании ресурса произошла ошибка;
      • PVCLost — дочерний PVC ресурса отсутствует. Ресурс не может быть использован;
      • Exporting - дочерний PV ресурса находится в процессе экспорта;
      • Terminating - ресурс находится в процессе удаления.

      Допустимые значения: Pending, Provisioning, WaitForUserUpload, WaitForFirstConsumer, Ready, Resizing, Failed, PVCLost, Exporting, Terminating, Migrating

    • status.progress
      строка
      Ход копирования образа из источника в DVCR. Отображается только на этапе Provisioning.
    • status.sourceUID
      строка
      UID источника (VirtualImage или ClusterVirtualImage), использованного при создании виртуального диска.
    • status.stats
      объект
      Статистика по виртуальному диску.
      • status.stats.creationDuration
        объект
        Время создания виртуального диска.
        • status.stats.creationDuration.dvcrProvisioning
          строка
          Длительность загрузки в Deckhouse Virtualization Container Registry (DVCR).
        • status.stats.creationDuration.totalProvisioning
          строка
          Длительность создания ресурса (копирование, загрузка и создание диска) с момента готовности зависимостей до перехода ресурса в состояние Ready.
        • status.stats.creationDuration.waitingForDependencies
          строка
          Длительность ожидания зависимостей для создания виртуального диска.
    • status.storageClassName
      строка
      Имя StorageClass, использованного для создания DataVolume.
    • status.target
      объект
      • status.target.persistentVolumeClaimName
        строка
        Имя созданного PVC для хранилища Kubernetes.
    • status.uploadCommand
      строка
      Устаревшее поле. Используйте imageUploadURLs.

VirtualDiskSnapshot

Scope: Namespaced
Version: v1alpha2

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

В процессе выполнения автоматически создаётся ресурс VolumeSnapshot.

  • spec
    объект
    • spec.requiredConsistency
      булевый

      Создавать снимок диска подключённой виртуальной машины только в том случае, если возможно заморозить её через агента.

      Если установлено значение True, снимок виртуального диска будет создан, если выполняется хотя бы одно из следующих условий:

      • виртуальный диск не подключен ни к одной виртуальной машине;
      • виртуальный диск подключен к виртуальной машине, которая выключена;
      • виртуальный диск подключен к виртуальной машине с агентом, и операция заморозки прошла успешно.

      По умолчанию: true

    • spec.virtualDiskName
      строка

      Обязательный параметр

      Имя виртуального диска, для которого будет создан снимок.

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

  • status
    объект
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

        Максимальная длина: 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.consistent
      булевый
      Снимок виртуального диска консистентен.
    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Текущее состояние ресурса VirtualDiskSnapshot:

      • Pending — ресурс был создан и находится в очереди ожидания;
      • InProgress — идёт процесс создания снимка виртуального диска;
      • Ready — создание снимка успешно завершено, и снимок виртуального диска доступен для использования;
      • Failed — во время создания снимка виртуального диска произошла ошибка;
      • Terminating — ресурс находится в процессе удаления.

      Допустимые значения: Pending, InProgress, Ready, Failed, Terminating

    • status.volumeSnapshotName
      строка
      Имя созданного ресурса VolumeSnapshot.

VirtualImage

Scope: Namespaced
Version: v1alpha2

Описывает образ диска виртуальной машины, который может использоваться в качестве источника данных для новых ресурсов VirtualDisks или установочный образ (iso), который может быть смонтирован в ресурс VirtualMachines напрямую.

Этот ресурс не может быть изменён после создания.

После появления в кластере этого ресурса создаётся образ контейнера, который хранится в специальном реестре контейнеров Deckhouse Virtualization Container Registry (DVCR).

Важно: Поле metadata.name должно соответствовать правилам именования объектов Kubernetes и не должно превышать 49 символов.

  • 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.dataSource
      объект

      Обязательный параметр

      Тип источника, из которого будет создан образ.
      • spec.dataSource.containerImage
        объект
        Использование образа, который хранится во внешнем реестре контейнеров. Поддерживаются только реестры контейнеров с включённым протоколом TLS. Чтобы предоставить собственную цепочку центров сертификации, используйте поле caBundle.
        • spec.dataSource.containerImage.caBundle
          строка
          Цепочка сертификатов в формате Base64 для проверки подключения к реестру контейнеров.

          Пример:

          caBundle: YWFhCg==
          
        • spec.dataSource.containerImage.image
          строка

          Обязательный параметр

          Путь к образу в реестре контейнеров.

          Шаблон: ^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$

          Пример:

          image: registry.example.com/images/slackware:15
          
        • spec.dataSource.containerImage.imagePullSecret
          объект
          • spec.dataSource.containerImage.imagePullSecret.name
            строка
            Имя секрета, содержащего учётные данные для подключения к реестру контейнеров.
      • spec.dataSource.http
        объект

        Создание образа из файла, размещённого на указанном URL-адресе. Поддерживаемые схемы:

        • HTTP;
        • HTTPS.

        Для схемы HTTPS есть возможность пропустить проверку TLS.

        • spec.dataSource.http.caBundle
          строка
          Цепочка сертификатов в формате Base64 для проверки TLS-сертификата сервера, на котором размещается файл.

          Пример:

          caBundle: YWFhCg==
          
        • spec.dataSource.http.checksum
          объект
          Контрольная сумма файла для проверки целостности и отсутствия изменений в загруженных данных. Файл должен соответствовать всем указанным контрольным суммам.
          • spec.dataSource.http.checksum.md5
            строка

            Длина: 32..32

            Шаблон: ^[0-9a-fA-F]{32}$

            Пример:

            md5: f3b59bed9f91e32fac1210184fcff6f5
            
          • spec.dataSource.http.checksum.sha256
            строка

            Длина: 64..64

            Шаблон: ^[0-9a-fA-F]{64}$

            Пример:

            sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
            
        • spec.dataSource.http.url
          строка

          Обязательный параметр

          URL-адрес, указывающий на файл для создания образа. Допустимые форматы файла:

          • qcow2;
          • vmdk;
          • vdi;
          • iso;
          • raw.

          Файл может быть сжат в архив в одном из следующих форматов:

          • gz;
          • xz.

          Шаблон: ^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$

          Пример:

          url: https://mirror.example.com/images/slackware-15.qcow.gz
          
      • spec.dataSource.objectRef
        объект
        Использование существующего ресурса VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot для создания образа.
        • spec.dataSource.objectRef.kind
          строка

          Обязательный параметр

          Ссылка на существующий ресурс VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.

          Допустимые значения: ClusterVirtualImage, VirtualImage, VirtualDisk, VirtualDiskSnapshot

        • spec.dataSource.objectRef.name
          строка

          Обязательный параметр

          Имя существующего ресурса VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.

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

      • spec.dataSource.type
        строка

        Доступные типы источников для создания образа:

        • HTTP — из файла, опубликованного на HTTP/HTTPS-сервере;
        • ContainerImage — из образа в реестре контейнеров;
        • ObjectRef — из существующего ресурса;
        • Upload — загрузить образ диска вручную.

        Допустимые значения: HTTP, ContainerImage, ObjectRef, Upload

    • spec.persistentVolumeClaim
      объект
      Настройки для создания PersistentVolumeClaim (PVC) для хранения образа с хранилищем типа ‘PersistentVolumeClaim’.
      • spec.persistentVolumeClaim.storageClassName
        строка

        Имя StorageClass, необходимого для PVC. Подробнее об использовании StorageClass для PVC: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

        При создании образа с хранилищем типа ‘PersistentVolumeClaim’ пользователь может явно указать необходимый StorageClass для создания диска. Если этого не сделать, будет использован StorageClass, доступный по умолчанию.

    • spec.storage
      строка

      Обязательный параметр

      Тип хранилища для образа:

      • ContainerRegistry — использовать реестр контейнеров DVCR. В этом случае образы будут загружаться в контейнер, а затем в DVCR (поставляется с модулем виртуализации);
      • Kubernetes - устаревший тип хранилища. Не рекомендуется к использованию и может быть удалён в будущих версиях. Используйте тип PersistentVolumeClaim;
      • PersistentVolumeClaim - использовать PVC.

      По умолчанию: ContainerRegistry

      Допустимые значения: ContainerRegistry, Kubernetes, PersistentVolumeClaim

  • status
    объект
    • status.cdrom
      булевый
      Определяет, выполнен ли образ в формате, который должен быть смонтирован как устройство CD-ROM, таком как iso и др.
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

        Максимальная длина: 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.downloadSpeed
      объект
      Скорость загрузки образа из внешнего источника. Появляется только на этапе Provisioning.
      • status.downloadSpeed.avg
        строка
        Средняя скорость загрузки.

        Пример:

        avg: 1 Mbps
        
      • status.downloadSpeed.avgBytes
        строка
        Средняя скорость загрузки в байтах в секунду.

        Пример:

        avgBytes: 1012345
        
      • status.downloadSpeed.current
        строка
        Текущая скорость загрузки.

        Пример:

        current: 5 Mbps
        
      • status.downloadSpeed.currentBytes
        строка
        Текущая скорость загрузки в байтах в секунду.

        Пример:

        currentBytes: 5123456
        
    • status.format
      строка
      Обнаруженный формат образа.
    • status.imageUploadURLs
      объект
      • status.imageUploadURLs.external
        строка
        Команда для загрузки образа с использованием Ingress вне кластера.
      • status.imageUploadURLs.inCluster
        строка
        Команда для загрузки образа с использованием Service внутри кластера.
    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Текущее состояние ресурса VirtualImage:

      • Pending — ресурс был создан и находится в очереди ожидания;
      • Provisioning — идёт процесс создания ресурса: копирование, загрузка или создание образа;
      • WaitForUserUpload — ожидание загрузки образа пользователем. Путь для загрузки образа указывается в .status.uploadCommand;
      • Ready — ресурс создан и готов к использованию;
      • Failed — при создании ресурса возникла ошибка. За подробностями обратитесь к полям .status.failureReason и .status.failureMessage;
      • ImageLost — образ отсутствует в DVCR. Ресурс не может быть использован;
      • PVCLost — дочерний PVC ресурса отсутствует. Ресурс не может быть использован;
      • Terminating - ресурс находится в процессе удаления.

      Допустимые значения: Pending, Provisioning, WaitForUserUpload, Ready, Failed, Terminating, ImageLost, PVCLost

    • status.progress
      строка
      Ход копирования образа из источника в DVCR. Отображается только на этапе Provisioning.
    • status.size
      объект
      Обнаруженные данные о размере образа.
      • status.size.stored
        строка
        Размер образа в DVCR в удобочитаемом формате.

        Пример:

        stored: 199M
        
      • status.size.storedBytes
        строка
        Размер образа в DVCR в байтах.

        Пример:

        storedBytes: 199001234
        
      • status.size.unpacked
        строка
        Размер распакованного образа в удобочитаемом формате.

        Пример:

        unpacked: 1G
        
      • status.size.unpackedBytes
        строка
        Размер распакованного образа в байтах.

        Пример:

        unpackedBytes: 1000000234
        
    • status.sourceUID
      строка
      UID источника (VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot), использованного при создании виртуального образа.
    • status.storageClassName
      строка
      Имя StorageClass, использованного для создания DataVolume, если в поле storage был выбран тип Kubernetes.
    • status.target
      объект
      • status.target.persistentVolumeClaimName
        строка
        Имя созданного PersistentVolumeClaim для хранилища Kubernetes.
      • status.target.registryURL
        строка
        Образ, созданный в DVCR.

        Пример:

        registryURL: dvcr.<dvcr-namespace>.svc/vi/<image-namespace>/<image-name>:latest
        
    • status.uploadCommand
      строка
      Устаревшее поле. Используйте imageUploadURLs.

VirtualMachineBlockDeviceAttachment

Scope: Namespaced
Version: v1alpha2

Ресурс обеспечивает возможность «горячего» подключения диска к виртуальной машине (ВМ).
  • 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.blockDeviceRef
      объект

      Обязательный параметр

      Блочное устройство, которое будет подключено к ВМ в качестве hot-plug-диска.
      • spec.blockDeviceRef.kind
        строка

        Тип блочного устройства. Возможные типы:

        • VirtualDisk — использовать VirtualDisk в качестве диска. Этот тип всегда монтируется в режиме RW.
        • VirtualImage — использовать VirtualImage в качестве диска. Этот тип всегда монтируется в режиме RO.
        • ClusterVirtualImage - использовать ClusterVirtualImage в качестве диска. Этот тип всегда монтируется в режиме RO.

        Допустимые значения: VirtualDisk, VirtualImage, ClusterVirtualImage

      • spec.blockDeviceRef.name
        строка
        Имя блочного устройства.

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

    • spec.virtualMachineName
      строка

      Обязательный параметр

      Имя виртуальной машины, к которой подключен диск.

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

  • status
    объект
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

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

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Текущее состояние ресурса:

      • Pending — ресурс был создан и находится в очереди ожидания;
      • InProgress — диск находится в процессе подключения к ВМ;
      • Attached — диск подключен к ВМ;
      • Failed — при подключении диска произошла ошибка;
      • Terminating — ресурс находится в процессе удаления.

      Допустимые значения: Pending, InProgress, Attached, Failed, Terminating

    • status.virtualMachineName
      строка
      Имя виртуальной машины, к которой подключен данный диск.

VirtualMachineClass

Scope: Cluster

VirtualMachineClass resource describes CPU requirements, node placement, and sizing policy for VM resources. A resource cannot be deleted as long as it is used in one of the VMs.
  • 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.cpu
      объект

      Обязательный параметр

      CPU defines the requirements for the virtual CPU model.
      • spec.cpu.discovery
        объект
        Create a CPU model based on intersecting CPU features for selected nodes.
        • spec.cpu.discovery.nodeSelector
          объект
          A selection of nodes to be used as the basis for creating a universal CPU model.
          • spec.cpu.discovery.nodeSelector.matchExpressions
            массив объектов
            matchExpressions is a list of label selector requirements. The requirements are ANDed.
            • spec.cpu.discovery.nodeSelector.matchExpressions.key
              строка
              key is the label key that the selector applies to.
            • spec.cpu.discovery.nodeSelector.matchExpressions.operator
              строка
              operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
            • spec.cpu.discovery.nodeSelector.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.cpu.discovery.nodeSelector.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.cpu.features
        массив строк
        List of CPU instructions (features) required when type=Features. For more information about CPU features, refer to the libvirt docs.

        Пример:

        features:
        - mmx
        - vmx
        - sse2
        
      • spec.cpu.model
        строка
        CPU model name. For more information about CPU models and topology, refer to the libvirt docs.

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

        Пример:

        model: IvyBridge
        
      • spec.cpu.type
        строка

        Обязательный параметр

        CPUType defines the CPU type, the following options are supported:

        • Host: Uses a virtual CPU with an instruction set closely matching the platform node’s CPU. This provides high performance and functionality, as well as compatibility with “live” migration for nodes with similar processor types. For example, VM migration between nodes with Intel and AMD processors will not work. This is also true for different CPU generations, as their instruction set is different.
        • HostPassthrough: Uses the platform node’s physical CPU directly, without any modifications. When using this class, the guest VM can only be transferred to a target node with a CPU exactly matching the source node’s CPU.
        • Discovery: Create a virtual CPU based on instruction sets of physical CPUs for a selected set of nodes.
        • Model: CPU model. A CPU model is a named and previously defined set of supported CPU instructions.
        • Features: A required set of supported instructions for the CPU.

        Допустимые значения: Host, HostPassthrough, Discovery, Model, Features

    • spec.nodeSelector
      объект
      NodeSelector defines the nodes targeted for VM scheduling.
      • spec.nodeSelector.matchExpressions
        массив объектов
        A list of node selector requirements by node’s labels.
        • spec.nodeSelector.matchExpressions.key
          строка
          The label key that the selector applies to.
        • spec.nodeSelector.matchExpressions.operator
          строка
          Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
        • spec.nodeSelector.matchExpressions.values
          массив строк
          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. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
      • spec.nodeSelector.matchLabels
        объект
        A map of {key,value} pairs. A single {key,value} pair in the matchLabels map is equivalent to an element of matchExpressions whose key field is “key”, operator is “In”, and the value array contains only “value”. The requirements are ANDed.
    • spec.sizingPolicies
      массив объектов
      • spec.sizingPolicies.coreFractions
        массив строк
        Allowed values of the coreFraction parameter in percentages (e.g., “5%”, “10%”, “25%”, “50%”, “100%”).
        • spec.sizingPolicies.coreFractions.Элемент массива
          строка
          CoreFractionValue represents CPU core fraction as a percentage string (e.g., “5%”, “10%”, “25%”, “50%”, “100%”).
      • spec.sizingPolicies.cores
        объект
        The policy applies for a specified range of the number of CPU cores.
        • spec.sizingPolicies.cores.max
          целочисленный

          Обязательный параметр

          Maximum number of CPU cores.

          Допустимые значения: X <= 1024

          Пример:

          max: 10
          
        • spec.sizingPolicies.cores.min
          целочисленный

          Обязательный параметр

          Minimum number of CPU cores.

          Допустимые значения: 1 <= X

          Пример:

          min: 1
          
        • spec.sizingPolicies.cores.step
          целочисленный
          Discretization step for the CPU core number. For example, the combination of min=2, max=10, and step=4 allows to set the number of virtual machine CPU cores to 2, 6, or 10.

          Допустимые значения: 1 <= X

          Пример:

          step: 1
          
      • spec.sizingPolicies.dedicatedCores
        массив булевых значений
        Allowed values of the dedicatedCores parameter.
      • spec.sizingPolicies.defaultCoreFraction
        строка
        A default CoreFraction value for a VirtualMachine if it is not provided.
      • spec.sizingPolicies.memory
        объект
        Memory sizing policy.
        • spec.sizingPolicies.memory.max
          строка или число
          Maximum amount of memory.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Пример:

          max: 8Gi
          
        • spec.sizingPolicies.memory.min
          строка или число
          Minimum amount of memory.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Пример:

          min: 1Gi
          
        • spec.sizingPolicies.memory.perCore
          объект
          Amount of memory per CPU core.
          • spec.sizingPolicies.memory.perCore.max
            строка или число
            Maximum amount of memory.

            Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

            Пример:

            max: 8Gi
            
          • spec.sizingPolicies.memory.perCore.min
            строка или число
            Minimum amount of memory.

            Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

            Пример:

            min: 1Gi
            
        • spec.sizingPolicies.memory.step
          строка или число
          Memory size discretization step. For example, the combination of min=2Gi, max=4Giandstep=1Gi` allows to set the virtual machine memory size to 2Gi, 3Gi, or 4Gi.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Пример:

          step: 512Mi
          
    • spec.tolerations
      массив объектов
      Tolerations are the same as spec.tolerations for pods. These tolerations will be merged with the tolerations specified in the VirtualMachine resource. VirtualMachine tolerations have a higher priority.
      • spec.tolerations.effect
        строка
        Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
      • spec.tolerations.key
        строка
        Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
      • spec.tolerations.operator
        строка
        Operator represents a key’s relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
      • spec.tolerations.tolerationSeconds
        целочисленный
        TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
      • spec.tolerations.value
        строка
        Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  • status
    объект
    • status.availableNodes
      массив строк
      List of nodes that support this CPU model. It is not displayed for the following types: Host, HostPassthrough.

      Пример:

      availableNodes:
      - node-1
      - node-2
      
    • status.conditions
      массив объектов
      The latest detailed observations of the VirtualMachineClass resource.
      • 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.cpuFeatures
      объект
      CpuFeatures Information on CPU features supported by this model. Shown only for Features or Discovery types.
      • status.cpuFeatures.enabled
        массив строк
        List of CPU features for this model.

        Пример:

        enabled:
        - mmx
        - vmx
        - sse2
        
      • status.cpuFeatures.notEnabledCommon
        массив строк
        List of unused processor features additionally available for a given group of nodes.

        Пример:

        notEnabledCommon:
        - ssse3
        - vme
        
    • status.maxAllocatableResources
      объект
      Maximum amount of free CPU and memory resources observed among all available nodes.

      Пример:

      maxAllocatableResources:
      - 'maxAllocatableResources: {"cpu": 1, "memory": "10Gi"}'
      
    • status.observedGeneration
      целочисленный
      Resource generation last processed by the controller.
    • status.phase
      строка

      Обязательный параметр

      VirtualMachineClassPhase defines the current resource status:

      • Pending: The resource is not ready and waits until the suitable nodes supporting the required CPU model are available.
      • Ready: The resource is ready and available for use.
      • Terminating: The resource is terminating.

      Допустимые значения: Pending, Ready, Terminating

Данный ресурс описывает:

  • требования к виртуальному CPU;
  • требования к размещению виртуальных машин (ВМ) на узлах;
  • политику определения размера ресурсов ВМ.

Этот ресурс не может быть удалён, пока он используется хотя бы на одной ВМ.

  • 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.cpu
      объект

      Обязательный параметр

      Блок описания требований к виртуальному CPU.
      • spec.cpu.discovery
        объект

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

        Допустим, у нас есть выборка из трёх узлов, где на каждом узле есть физические CPU с различными наборами инструкций. Набор инструкций физического CPU-узла 1: [f1, f2, f3, f4], для узла 2: [f1, f2], и для узла 3: [f1, f2, f3]. Для создания универсальной модели CPU для этой выборки узлов необходимо объединить общие инструкции, присущие всем узлам, то есть [f1, f2]. В результате мы получим виртуальный CPU с набором инструкций [f1, f2].

        • spec.cpu.discovery.nodeSelector
          объект
          Выборка узлов, на основе которой будет создана универсальная модель CPU.
          • spec.cpu.discovery.nodeSelector.matchExpressions
            массив объектов
            Список селекторов лейблов. Требования селекторов объединяются, т.е. должны выполняться все условия списка. Под лейблом понимается пара: ключ = значение.
            • spec.cpu.discovery.nodeSelector.matchExpressions.key
              строка
              Название ключа лейбла, к которому применяется селектор.
            • spec.cpu.discovery.nodeSelector.matchExpressions.operator
              строка

              Оператор определяет отношение ключа лейбла к набору его значений. Допустимые операторы: In, NotIn, Exists и DoesNotExist:

              In - значение ключа лейбла входит в заданный список лейблов values; NotIn - значение ключа лейбла не входит в заданный список лейблов values; Exist - ключ лейбла существует; DoesNotExist - ключ лейбла не существует.

            • spec.cpu.discovery.nodeSelector.matchExpressions.values
              массив строк
              Строковый список значений. Если выбран оператор In или NotIn, список значений не должен быть пустым. Если выбран оператор Exists или DoesNotExist, список значений должен быть пустым.
          • spec.cpu.discovery.nodeSelector.matchLabels
            объект

            Карта пар ключ=значение. Одна пара ключ=значение для matchLabels эквивалентна элементу matchExpressions, ключевым полем которого является ключ, оператором - In, а список значений содержит только значение.

            Для выборки по данному критерию все значения логически суммируются.

      • spec.cpu.features
        массив строк
        Необходимые инструкции для процессора в виде списка. Дополнительная информация о поддерживаемых инструкциях.

        Пример:

        features:
        - mmx
        - vmx
        - sse2
        
      • spec.cpu.model
        строка
        Название модели процессора. Дополнительная информация о моделях.

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

        Пример:

        model: IvyBridge
        
      • spec.cpu.type
        строка

        Обязательный параметр

        В качестве типа ресурса поддерживаются следующие варианты:

        • Host - используется виртуальный CPU, максимально близкий к CPU узла платформы по набору инструкций. Это обеспечивает высокую производительность и функциональность, а также совместимость с «живой» миграцией для узлов с похожими типами процессоров. Например, миграция ВМ между узлами с процессорами Intel и AMD не будет работать. Это также справедливо для процессоров разных поколений, так как набор инструкций у них отличается;
        • HostPassthrough - используется физический CPU узла платформы напрямую, без каких-либо изменений. При использовании данного класса гостевая ВМ может быть перенесена только на целевой узел, у которого CPU точно соответствует CPU исходного узла;
        • Discovery - создание виртуального CPU на основе наборов инструкций физических CPU для заданного набора узлов;
        • Model - модель процессора. Модель процессора - это именованный и предварительно определённый набор поддерживаемых инструкций процессора;
        • Features - необходимый набор поддерживаемых инструкций для процессора.

        Допустимые значения: Host, HostPassthrough, Discovery, Model, Features

    • spec.nodeSelector
      объект
      Селектор узлов, на которые разрешено планировать ВМ для запуска.
      • spec.nodeSelector.matchExpressions
        массив объектов
        Список селекторов лейблов. Требования селекторов объединяются, т.е. должны выполняться все условия списка. Под лейблом понимается пара: ключ = значение.
        • spec.nodeSelector.matchExpressions.key
          строка
          Название ключа лейбла, к которому применяется селектор.
        • spec.nodeSelector.matchExpressions.operator
          строка

          Оператор определяет отношение ключа лейбла к набору его значений. Допустимые операторы: In, NotIn, Exists и DoesNotExist:

          In - значение ключа лейбла входит в заданный список лейблов values; NotIn - значение ключа лейбла не входит в заданный список лейблов values; Exist - ключ лейбла существует; DoesNotExist - ключ лейбла не существует.

        • spec.nodeSelector.matchExpressions.values
          массив строк
          Строковый список значений. Если выбран оператор In или NotIn, список значений не должен быть пустым. Если выбран оператор Exists или DoesNotExist, список значений должен быть пустым.
      • spec.nodeSelector.matchLabels
        объект

        Карта пар ключ=значение. Одна пара ключ=значение для matchLabels эквивалентна элементу matchExpressions, ключевым полем которого является «ключ», оператором - «In», а список значений содержит только «значение».

        Для выборки по данному критерию все значения логически суммируются.

    • spec.sizingPolicies
      массив объектов
      • spec.sizingPolicies.coreFractions
        массив целых чисел
        Допустимые значения параметра coreFraction в процентах (например, “5%”, “10%”, “25%”, “50%”, “100%”).
        • spec.sizingPolicies.coreFractions.Элемент массива
          целочисленный

          Допустимые значения: 1 <= X <= 100

      • spec.sizingPolicies.cores
        объект
        Политика применяется для заданного диапазона числа ядер CPU.
        • spec.sizingPolicies.cores.max
          целочисленный

          Обязательный параметр

          Максимальное число ядер CPU.

          Допустимые значения: X <= 1024

          Пример:

          max: 10
          
        • spec.sizingPolicies.cores.min
          целочисленный

          Обязательный параметр

          Минимальное число ядер CPU.

          Допустимые значения: 1 <= X

          Пример:

          min: 1
          
        • spec.sizingPolicies.cores.step
          целочисленный
          Шаг увеличения числа ядер CPU.

          Допустимые значения: 1 <= X

          Пример:

          step: 1
          
      • spec.sizingPolicies.dedicatedCores
        массив булевых значений
        Допустимые значения параметра dedicatedCores.
      • spec.sizingPolicies.defaultCoreFraction
        целочисленный
        Значение coreFraction по умолчанию для VirtualMachineClass. Используется при создании ВМ, если coreFraction не задан явно.

        Допустимые значения: 1 <= X <= 100

      • spec.sizingPolicies.memory
        объект
        Политика определения размера памяти.
        • spec.sizingPolicies.memory.max
          строка или число
          Максимальный объём памяти.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Пример:

          max: 8Gi
          
        • spec.sizingPolicies.memory.min
          строка или число
          Минимальный объём памяти.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Пример:

          min: 1Gi
          
        • spec.sizingPolicies.memory.perCore
          объект
          Объём памяти на одно ядро процессора.
          • spec.sizingPolicies.memory.perCore.max
            строка или число
            Максимальный объём памяти.

            Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

            Пример:

            max: 8Gi
            
          • spec.sizingPolicies.memory.perCore.min
            строка или число
            Минимальный объём памяти.

            Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

            Пример:

            min: 1Gi
            
        • spec.sizingPolicies.memory.step
          строка или число
          Шаг увеличения объёма памяти.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

          Пример:

          step: 512Mi
          
    • spec.tolerations
      массив объектов
      Параметр аналогичен параметру spec.tolerations у подов. Подробнее о taints и tolerations. Tolerations из этого параметра будут объединены с tolerations, указанными в ресурсе VirtualMachine. При этом, tolerations у VirtualMachine имеют больший приоритет.
      • spec.tolerations.effect
        строка
        Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
      • spec.tolerations.key
        строка
        Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
      • spec.tolerations.operator
        строка
        Operator represents a key’s relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
      • spec.tolerations.tolerationSeconds
        целочисленный
        TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
      • spec.tolerations.value
        строка
        Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  • status
    объект
    • status.availableNodes
      массив строк
      Список узлов, поддерживающих данную модель процессора. Не отображается для следующих типов: Host, HostPassthrough.

      Пример:

      availableNodes:
      - node-1
      - node-2
      
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

        Максимальная длина: 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.cpuFeatures
      объект
      Информация о поддерживаемых наборах инструкций процессора для данной модели. Отображается только для type=Features.
      • status.cpuFeatures.enabled
        массив строк
        Список наборов инструкций CPU для данной модели.

        Пример:

        enabled:
        - mmx
        - vmx
        - sse2
        
      • status.cpuFeatures.notEnabledCommon
        массив строк
        Список неиспользуемых инструкций CPU, дополнительно доступных для данной группы узлов.

        Пример:

        notEnabledCommon:
        - ssse3
        - vme
        
    • status.maxAllocatableResources
      объект
      Максимальные размеры свободных ресурсов процессора и памяти, найденные среди всех доступных узлов.

      Пример:

      maxAllocatableResources:
      - 'maxAllocatableResources: {"cpu": 1, "memory": "10Gi"}'
      
    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Обязательный параметр

      Текущий статус ресурса:

      • Pending - ресурс не готов и ожидает, пока станут доступны подходящие узлы, поддерживающие требуемую модель процессора;
      • Ready - ресурс готов и доступен для использования;
      • Terminating - ресурс находится в процессе удаления.

      Допустимые значения: Pending, Ready, Terminating

VirtualMachineIPAddress

Scope: Namespaced
Version: v1alpha2

Ресурс, определяющий IP-адрес для виртуальной машины.
  • apiVersion
    строка
  • kind
    строка
  • metadata
    объект
  • spec
    объект
    Настройки ресурса VirtualMachineIPAddress.
    • spec.staticIP
      строка
      Запрашиваемый статический IP-адрес, который должен быть присвоен виртуальной машине. Поле является обязательным в случае, если для параметра type задано значение Static.
    • spec.type
      строка

      Обязательный параметр

      Определяет режим присвоения IP-адреса. Возможные значения:

      • Auto – для автоматического присвоения IP-адреса;
      • Static – для присвоения определенного IP-адреса.

      Допустимые значения: Auto, Static

  • status
    объект
    • status.address
      строка
      Назначенный IP-адрес.
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

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

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Представляет текущее состояние ресурса VirtualMachineIPAddress.

      • Pending - выполняется создание ресурса;
      • Bound - ресурс VirtualMachineIPAddress привязан к ресурсу VirtualMachineIPAddressLease;
      • Attached - ресурс VirtualMachineIPAddress подключен к ресурсу VirtualMachine.

      Допустимые значения: Pending, Bound, Attached

    • status.virtualMachineName
      строка
      Имя виртуальной машины, которая в настоящее время использует данный IP-адрес.

VirtualMachineIPAddressLease

Scope: Cluster
Version: v1alpha2

Ресурс, определяющий факт выданной аренды для ресурса VirtualMachineIPAddress.
  • apiVersion
    строка
  • kind
    строка
  • metadata
    объект
  • spec
    объект
    Параметры конфигурации ресурса VirtualMachineIPAddressLease.
    • spec.virtualMachineIPAddressRef
      объект
      Ссылка на существующие ресурсы VirtualMachineIPAddress.
      • spec.virtualMachineIPAddressRef.name
        строка

        Обязательный параметр

        Имя ссылающегося ресурса VirtualMachineIPAddress.
      • spec.virtualMachineIPAddressRef.namespace
        строка

        Обязательный параметр

        Пространство имён ссылающегося ресурса VirtualMachineIPAddress.
  • status
    объект
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

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

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Представляет текущее состояние ресурса VirtualMachineIPAddressLease.

      • Bound - ресурс VirtualMachineIPAddressLease привязан к ресурсу VirtualMachineIPAddress;
      • Released - ресурс VirtualMachineIPAddressLease доступен для связки с новым ресурсом VirtualMachineIPAddress.

      Допустимые значения: Bound, Released

VirtualMachineMACAddress

Scope: Namespaced
Version: v1alpha2

Ресурс предназначен для назначения MAC-адреса сетевому интерфейсу виртуальной машины.
  • apiVersion
    строка
  • kind
    строка
  • metadata
    объект
  • spec
    объект
    Настройки VirtualMachineMACAddress.
    • spec.address
      строка
      Запрашиваемый MAC-адрес, который должен быть присвоен сетевому интерфейсу виртуальной машины. Если поле пустое, MAC-адрес генерируется автоматически: первые три октета (OUI) формируются на основе UID кластера, а последние три октета выбираются случайным образом из диапазона 00:00:00 до FF:FF:FF.

      Шаблон: ^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$

  • status
    объект
    • status.address
      строка
      Назначенный MAC-адрес.
    • status.conditions
      массив объектов
      Последнее подтвержденное состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        observedGeneration представляет собой .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

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

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Представляет текущее состояние ресурса VirtualMachineMACAddress. Возможные значения:

      • Pending — ресурс создается.
      • Bound — ресурс VirtualMachineMACAddress привязан к ресурсу VirtualMachineMACAddressLease.
      • Attached — ресурс VirtualMachineMACAddress подключен к ресурсу VirtualMachine.

      Допустимые значения: Pending, Bound, Attached

    • status.virtualMachineName
      строка
      Имя виртуальной машины, которая в настоящее время использует этот MAC-адрес.

VirtualMachineMACAddressLease

Scope: Cluster
Version: v1alpha2

Ресурс обеспечивает резервирование MAC-адреса для сетевого интерфейса виртуальной машины, предотвращая повторное выделение такого же адреса в пределах кластера.
  • apiVersion
    строка
  • kind
    строка
  • metadata
    объект
  • spec
    объект
    Параметры конфигурации VirtualMachineMACAddressLease.
    • spec.virtualMachineMACAddressRef
      объект
      Ссылка на существующие VirtualMachineMACAddress.
      • spec.virtualMachineMACAddressRef.name
        строка

        Обязательный параметр

        Имя ссылающегося VirtualMachineMACAddress.
      • spec.virtualMachineMACAddressRef.namespace
        строка

        Обязательный параметр

        Пространство имен ссылающегося VirtualMachineMACAddress.
  • status
    объект
    • status.conditions
      массив объектов
      Последнее подтвержденное состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        observedGeneration представляет собой .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

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

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Представляет текущее состояние ресурса VirtualMachineMACAddressLease. Возможные значения:

      • Bound — ресурс VirtualMachineMACAddressLease привязан к ресурсу VirtualMachineMACAddress.

      Допустимые значения: Bound

VirtualMachineOperation

Scope: Namespaced
Version: v1alpha2

Данный ресурс позволяет декларативно управлять изменением состояний виртуальных машин (ВМ).
  • 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.clone
      объект
      Определяет операцию клонирования.
      • spec.clone.customization
        объект
        Определяет параметры кастомизации для клонирования.
        • spec.clone.customization.namePrefix
          строка
          Добавляет префикс к именам ресурсов при клонировании. Применяется к ресурсам VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment и Secret.
        • spec.clone.customization.nameSuffix
          строка
          Добавляет суффикс к именам ресурсов при клонировании. Применяется к ресурсам VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment и Secret.
      • spec.clone.mode
        строка

        Обязательный параметр

        Режим клонирования:

        • DryRun — запуск без выполнения клонирования. Конфликты и несоответствия фиксируются в статусе операции.
        • Strict — строгий режим клонирования «как в исходной ВМ». Отсутствие внешних зависимостей может привести к тому, что клонированная виртуальная машина после создания будет находиться в состоянии Pending;
        • BestEffort — режим клонирования с удалением отсутствующих внешних зависимостей (ClusterVirtualImage, VirtualImage) из спецификации виртуальной машины.

        Допустимые значения: DryRun, Strict, BestEffort

      • spec.clone.nameReplacement
        массив объектов
        Определяет правила переименования ресурсов при клонировании.
        • spec.clone.nameReplacement.from
          объект
          Селектор для выбора ресурсов для переименования.
          • spec.clone.nameReplacement.from.kind
            строка
            Тип ресурса для переименования.

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

          • spec.clone.nameReplacement.from.name
            строка

            Обязательный параметр

            Текущее имя ресурса для переименования.

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

        • spec.clone.nameReplacement.to
          строка
          Новое имя ресурса.

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

    • spec.force
      булевый

      Форсирует выполнение операции.

      • Для операций Restart и Stop: выполнить операцию немедленно.
      • Для операции Evict и Migrate: включить функцию AutoConverge для принудительной миграции через замедление CPU, если для живой миграции используются политики PreferSafe или PreferForced.
    • spec.migrate
      объект
      Определяет операцию миграции виртуальной машины.
      • spec.migrate.nodeSelector
        объект

        Селектор меток узла для планирования виртуальной машины на узел. Должен соответствовать меткам целевого узла. По аналогии с параметром подов spec.nodeSelector в Kubernetes.

        Поле nodeSelector недоступно в Community Edition.

    • spec.restore
      объект
      Определяет операцию восстановления из снимка.
      • spec.restore.mode
        строка

        Обязательный параметр

        Режим восстановления:

        • DryRun — запуск без выполнения восстановления. Конфликты и несоответствия фиксируются в статусе операции.
        • Strict — строгий режим восстановления «как в снимке». Отсутствие внешних зависимостей может привести к тому, что виртуальная машина после восстановления будет находиться в состоянии Pending;
        • BestEffort — режим восстановления с удалением отсутствующих внешних зависимостей (ClusterVirtualImage, VirtualImage, Secret) из спецификации виртуальной машины.

        Допустимые значения: DryRun, Strict, BestEffort

      • spec.restore.virtualMachineSnapshotName
        строка

        Обязательный параметр

        Имя снимка виртуальной машины, который используется как источник для операции восстановления.

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

    • spec.type
      строка

      Обязательный параметр

      Операции над виртуальной машиной:

      • Start — запустить виртуальную машину;
      • Stop — остановить виртуальную машину;
      • Restart — перезапустить виртуальную машину;
      • Migrate — мигрировать виртуальную машину на другой узел, на котором её можно запустить;
      • Evict — вытеснить виртуальную машину на другой узел, на котором её можно запустить;
      • Restore — восстановить виртуальную машину из снимка;
      • Clone — клонировать виртуальную машину.

      Допустимые значения: Restart, Start, Stop, Migrate, Evict, Restore, Clone

    • spec.virtualMachineName
      строка

      Обязательный параметр

      Имя виртуальной машины, для которой выполняется операция.

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

  • status
    объект
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

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

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Обязательный параметр

      Представляет текущее состояние ресурса:

      • Pending — операция поставлена в очередь на выполнение;
      • InProgress — операция в процессе выполнения;
      • Completed — операция прошла успешно;
      • Failed — операция завершилась неудачно. За подробностями обратитесь к полю conditions и событиям;
      • Terminating — операция удаляется.

      Допустимые значения: Pending, InProgress, Completed, Failed, Terminating

    • status.resources
      массив объектов
      Содержит список ресурсов, затронутых операцией снимка.
      • status.resources.apiVersion
        строка
        API версия ресурса.
      • status.resources.kind
        строка
        Тип ресурса.
      • status.resources.message
        строка
        Сообщение о ресурсе.
      • status.resources.name
        строка
        Имя ресурса.
      • status.resources.status
        строка
        Статус ресурса.

        Допустимые значения: InProgress, Completed, Failed

VirtualMachineRestore

Scope: Namespaced
Version: v1alpha2

VirtualMachineRestore предоставляет ресурс для восстановления виртуальных машин из снимков.
  • 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.nameReplacements
      массив объектов
      Правила переименования ресурсов виртуальной машины.
      • spec.nameReplacements.from
        объект
        Селектор для выбора ресурсов для переименования.
        • spec.nameReplacements.from.kind
          строка
          Тип ресурса.

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

        • spec.nameReplacements.from.name
          строка

          Обязательный параметр

          Имя ресурса, которое нужно переименовать.

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

      • spec.nameReplacements.to
        строка
        Новое имя ресурса.

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

    • spec.restoreMode
      строка

      Режим восстановления виртуальной машины:

      • Safe — безопасный режим. В этом режиме виртуальная машина не будет восстановлена, если в процессе восстановления будут обнаружены неразрешимые конфликты.
      • Forced — режим принудительного восстановления. В этом режиме конфигурация виртуальной машины будет обновлена, а все связанные ресурсы будут пересозданы. Работа виртуальной машины может быть нарушена, если процесс восстановления завершится неудачно. Используйте, когда необходимо восстановить виртуальную машину несмотря на конфликты.

      По умолчанию: Safe

      Допустимые значения: Safe, Forced

    • spec.virtualMachineSnapshotName
      строка

      Обязательный параметр

      Имя снимка для восстановления виртуальной машины.

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

  • status
    объект
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

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

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Обязательный параметр

      Текущее состояние ресурса VirtualMachineRestore:

      • Pending — ресурс был создан и находится в очереди ожидания;
      • InProgress — идёт процесс восстановления виртуальной машины из снимка;
      • Ready — виртуальная машина успешно восстановлена из снимка;
      • Failed — произошла ошибка во время процесса восстановления виртуальной машины из снимка;
      • Terminating — ресурс находится в процессе удаления.

      Допустимые значения: Pending, InProgress, Ready, Failed, Terminating

VirtualMachine

Scope: Namespaced
Version: v1alpha2

Ресурс, описывающий конфигурацию и статус виртуальной машины (ВМ). На запущенной ВМ изменённые параметры применятся только после перезагрузки, за исключением следующих параметров, которые применяются «на лету»:

  • .metadata.labels;
  • .metadata.annotations;
  • .spec.disruptions.restartApprovalMode.
  • .spec.runPolicy.

Важно: Поле metadata.name должно соответствовать правилам именования объектов Kubernetes и не должно превышать 63 символов.

  • 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.affinity
      объект

      По аналогии, как и в параметре подов spec.affinity в Kubernetes.

      Настройка affinity полностью аналогична приведённой выше документации, за исключением названий некоторых параметров. Используются следующие аналоги:

      • podAffinity -> virtualMachineAndPodAffinity;
      • podAffinityTerm -> virtualMachineAndPodAffinityTerm.
      • spec.affinity.nodeAffinity
        объект
        Описывает affinity-правила узлов для ВМ.
        • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
          массив объектов
          • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
            объект
            • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
              массив объектов
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.key
                строка
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator
                строка
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
                массив строк
                • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values.Элемент массива
                  строка
            • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields
              массив объектов
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.key
                строка
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator
                строка
              • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
                массив строк
                • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values.Элемент массива
                  строка
          • spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
            целочисленный

            Допустимые значения: 1 <= X <= 100

        • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
          объект
          • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
            массив объектов

            Обязательный параметр

            • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
              массив объектов
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key
                строка
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
                строка
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
                массив строк
                • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values.Элемент массива
                  строка
            • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
              массив объектов
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key
                строка
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
                строка
              • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
                массив строк
                • spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values.Элемент массива
                  строка
      • spec.affinity.virtualMachineAndPodAffinity
        объект
        Описывает affinity-правила подов и ВМ.
        • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution
          массив объектов
          • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
            объект
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
              объект
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
                массив объектов
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
                  строка
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
                  строка
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
                  массив строк
                  • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Элемент массива
                    строка
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
                объект
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
              массив строк
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Элемент массива
                строка
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
              массив строк
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys.Элемент массива
                строка
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
              объект
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
                массив объектов
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
                  строка
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
                  строка
                • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
                  массив строк
                  • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Элемент массива
                    строка
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
                объект
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
              массив строк
              • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Элемент массива
                строка
            • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
              строка

              Обязательный параметр

          • spec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
            целочисленный

            Допустимые значения: 1 <= X <= 100

        • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution
          массив объектов
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
            объект
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
              массив объектов
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
                строка
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
                строка
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
                массив строк
                • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Элемент массива
                  строка
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
              объект
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
            массив строк
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Элемент массива
              строка
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
            массив строк
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys.Элемент массива
              строка
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
            объект
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
              массив объектов
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
                строка
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
                строка
              • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
                массив строк
                • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Элемент массива
                  строка
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
              объект
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
            массив строк
            • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Элемент массива
              строка
          • spec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
            строка
      • spec.affinity.virtualMachineAndPodAntiAffinity
        объект
        Описывает anti-affinity-правила пода и ВМ.
        • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
          массив объектов
          • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
            объект
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
              объект
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
                массив объектов
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
                  строка
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
                  строка
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
                  массив строк
                  • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Элемент массива
                    строка
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
                объект
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
              массив строк
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Элемент массива
                строка
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
              массив строк
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys.Элемент массива
                строка
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
              объект
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
                массив объектов
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
                  строка
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
                  строка
                • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
                  массив строк
                  • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Элемент массива
                    строка
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
                объект
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
              массив строк
              • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Элемент массива
                строка
            • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
              строка

              Обязательный параметр

          • spec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
            целочисленный

            Допустимые значения: 1 <= X <= 100

        • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
          массив объектов
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
            объект
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
              массив объектов
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
                строка
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
                строка
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
                массив строк
                • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Элемент массива
                  строка
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
              объект
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
            массив строк
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Элемент массива
              строка
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
            массив строк
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys.Элемент массива
              строка
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
            объект
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
              массив объектов
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
                строка
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
                строка
              • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
                массив строк
                • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Элемент массива
                  строка
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
              объект
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
            массив строк
            • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Элемент массива
              строка
          • spec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
            строка
    • spec.blockDeviceRefs
      массив объектов

      Обязательный параметр

      Список блочных устройств, которые могут быть смонтированы в ВМ.

      Порядок загрузки определяется порядком в списке.

      • spec.blockDeviceRefs.kind
        строка

        Поддерживаемые типы устройств:

        • ClusterVirtualImage — использовать ClusterVirtualImage в качестве диска. Данный тип всегда монтируется в режиме для чтения (ReadOnly). ISO-образ будет смонтирован как устройство CD-ROM;
        • VirtualImage — использовать VirtualImage в качестве диска. Данный тип всегда монтируется в режиме для чтения (ReadOnly). ISO-образ будет смонтирован как устройство CD-ROM;
        • VirtualDisk — использовать VirtualDisk в качестве диска. Данный тип всегда монтируется в режиме для чтения и записи (ReadWrite).

        Допустимые значения: ClusterVirtualImage, VirtualImage, VirtualDisk

      • spec.blockDeviceRefs.name
        строка
        Имя ресурса заданного типа.

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

    • spec.bootloader
      строка

      Загрузчик для ВМ:

      • BIOS — использовать BIOS;
      • EFI — использовать Unified Extensible Firmware (EFI/UEFI);
      • EFIWithSecureBoot — использовать UEFI/EFI с поддержкой функции Secure Boot.

      По умолчанию: BIOS

      Допустимые значения: BIOS, EFI, EFIWithSecureBoot

    • spec.cpu
      объект

      Обязательный параметр

      Блок определяет настройки CPU для виртуальной машины.
      • spec.cpu.coreFraction
        строка
        Гарантированная доля времени CPU, выделяемая ВМ. Указывается в процентах. Допустимый диапазон значений определяется параметром sizePolicy в используемом VirtualMachineClass. Если sizePolicy не задан, используйте значения в диапазоне 1–100%. Если значение параметра не указано, применяется значение по умолчанию из sizePolicy используемого VirtualMachineClass. Если значение по умолчанию в классе не задано, применяется 100%.

        Шаблон: ^(100|[1-9][0-9]?|[1-9])%$

      • spec.cpu.cores
        целочисленный

        Обязательный параметр

        Количество ядер.

        Допустимые значения: 1 <= X

    • spec.disruptions
      объект

      Описание политики применения изменений, требующих перезагрузки ВМ.

      Для применения изменений в некоторых параметрах конфигурации ВМ потребуется перезагрузка. Данная политика позволяет задать поведение, определяющее как ВМ будет реагировать на такие изменения.

      По умолчанию: { "restartApprovalMode": "Manual" }

      • spec.disruptions.restartApprovalMode
        строка

        Режим одобрения для изменений, требующих перезагрузки ВМ:

        • Manual — изменения не будут применены до тех пор, пока пользователь самостоятельно не осуществит перезагрузку ВМ;
        • Automatic — ВМ будет перезагружена сразу после сохранения параметров, требующих перезагрузки.

        Допустимые значения: Manual, Automatic

    • spec.enableParavirtualization
      булевый

      Использовать шину virtio для подключения виртуальных устройств ВМ. Чтобы отключить virtio для ВМ, установите значение False.

      Внимание: Для использования режима паравиртуализации некоторые ОС требуют установки соответствующих драйверов.

      По умолчанию: true

    • spec.liveMigrationPolicy
      строка

      Политика для процесса живой миграции:

      • AlwaysSafe — использовать безопасный вариант для автоматических миграций и для ручного запуска. Не включать замедление CPU.
      • PreferSafe — использовать безопасный вариант для автоматических миграций. Замедление CPU можно включить вручную с помощью поля force=true в VMOP.
      • AlwaysForced — включать замедление CPU для автоматических миграций и для ручного запуска. Нельзя отключить замедление CPU.
      • PreferForced — включать замедление CPU для автоматических миграций. Замедление CPU можно выключить вручную с помощью поля force=false в VMOP.

      По умолчанию: PreferSafe

      Допустимые значения: AlwaysSafe, PreferSafe, AlwaysForced, PreferForced

    • spec.memory
      объект

      Обязательный параметр

      Блок настроек оперативной памяти для виртуальной машины.
      • spec.memory.size
        строка

        Обязательный параметр

        Объём оперативной памяти.

        Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

    • spec.networks
      массив объектов

      Список конфигураций сетевых интерфейсов. Если список не задан, ВМ использует только основную сеть кластера (Main).

      Модуль sdn требуется, если в .spec.networks указаны дополнительные сети (Network или ClusterNetwork). Если указана только основная сеть (Main), модуль sdn не требуется.

      • spec.networks.id
        целочисленный
        ID сетевого интерфейса.
      • spec.networks.name
        строка
        Имя сетевого интерфейса.

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

      • spec.networks.type
        строка

        Тип сетевого интерфейса.

        Возможные типы:

        • Main — основной сетевой интерфейс, который всегда присутствует (сеть по умолчанию);
        • Network — подсеть на уровне пространства имен;
        • ClusterNetwork — подсеть на уровне кластера.

        Допустимые значения: Main, Network, ClusterNetwork

      • spec.networks.virtualMachineMACAddressName
        строка
        Имя ресурса VirtualMachineMACAddress, связанного с сетевым интерфейсом.

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

    • spec.nodeSelector
      объект
      По аналогии c параметром подов spec.nodeSelector в Kubernetes.
    • spec.osType
      строка

      Параметр позволяет выбрать тип используемой ОС, для которой будет создана ВМ с оптимальным набором необходимых виртуальных устройств и параметров.

      • Windows — для ОС семейства Microsoft Windows;
      • Generic — для других типов ОС.

      По умолчанию: Generic

      Допустимые значения: Windows, Generic

    • spec.priorityClassName
      строка
      По аналогии с параметром подов spec.priorityClassName в Kubernetes.

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

    • spec.provisioning
      объект
      Блок описания сценария начальной инициализации ВМ.
      • spec.provisioning.sysprepRef
        объект

        Ссылка на существующий ресурс со сценарием автоматизации Windows.

        Структура ресурса для типа SysprepRef:

        • .data.autounattend.xml;
        • .data.unattend.xml.
        • spec.provisioning.sysprepRef.kind
          строка

          Обязательный параметр

          Тип ресурса. Используйте секрет с типом provisioning.virtualization.deckhouse.io/sysprep.

          По умолчанию: Secret

          Допустимые значения: Secret

        • spec.provisioning.sysprepRef.name
          строка

          Обязательный параметр

          Имя ресурса со сценарием автоматизации.

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

      • spec.provisioning.type
        строка

        Обязательный параметр

        Поддерживаемые параметры для использования сценария инициализации:

        • UserData — использовать сценарий cloud-init в секции .spec.provisioning.UserData;
        • UserDataRef — использовать сценарий cloud-init, который находится в другом ресурсе;
        • SysprepRef — использовать сценарий автоматизации установки Windows, который находится в другом ресурсе.

        Допустимые значения: UserData, UserDataRef, SysprepRef

      • spec.provisioning.userData
        строка
      • spec.provisioning.userDataRef
        объект

        Ссылка на существующий ресурс со сценарием cloud-init.

        Структура ресурса для типа userDataRef:

        • .data.userData.
        • spec.provisioning.userDataRef.kind
          строка

          Обязательный параметр

          Тип ресурса.

          По умолчанию: Secret

          Допустимые значения: Secret

        • spec.provisioning.userDataRef.name
          строка

          Обязательный параметр

          Имя ресурса со сценарием cloud-init.

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

    • spec.runPolicy
      строка

      Параметр определяет политику запуска ВМ:

      • AlwaysOn — после создания ВМ всегда находится в работающем состоянии, даже в случае отключения средствами ОС;
      • AlwaysOff — после создания ВМ всегда находится в выключенном состоянии;
      • Manual — после создания ВМ выключается. Включение и выключение ВМ контролируется через API-сервисы или средства ОС;
      • AlwaysOnUnlessStoppedManually — после создания ВМ всегда находится в работающем состоянии. ВМ можно выключить средствами ОС или воспользоваться командой для утилиты d8: d8 v stop <vm_name>.

      По умолчанию: AlwaysOnUnlessStoppedManually

      Допустимые значения: AlwaysOn, AlwaysOff, Manual, AlwaysOnUnlessStoppedManually

    • spec.terminationGracePeriodSeconds
      целочисленный
      Период ожидания после подачи сигнала о прекращении работы ВМ (SIGTERM), по истечении которого работа ВМ принудительно завершается.

      По умолчанию: 60

    • spec.tolerations
      массив объектов
      По аналогии с параметром подов spec.tolerations в Kubernetes.
      • spec.tolerations.effect
        строка
      • spec.tolerations.key
        строка
      • spec.tolerations.operator
        строка
      • spec.tolerations.tolerationSeconds
        целочисленный
      • spec.tolerations.value
        строка
    • spec.topologySpreadConstraints
      массив объектов
      По аналогии с параметром подов spec.topologySpreadConstraints в Kubernetes.
      • spec.topologySpreadConstraints.labelSelector
        объект
        • spec.topologySpreadConstraints.labelSelector.matchExpressions
          массив объектов
          • spec.topologySpreadConstraints.labelSelector.matchExpressions.key
            строка
          • spec.topologySpreadConstraints.labelSelector.matchExpressions.operator
            строка
          • spec.topologySpreadConstraints.labelSelector.matchExpressions.values
            массив строк
            • spec.topologySpreadConstraints.labelSelector.matchExpressions.values.Элемент массива
              строка
        • spec.topologySpreadConstraints.labelSelector.matchLabels
          объект
      • spec.topologySpreadConstraints.maxSkew
        целочисленный
      • spec.topologySpreadConstraints.topologyKey
        строка
      • spec.topologySpreadConstraints.whenUnsatisfiable
        строка
    • spec.usbDevices
      массив объектов
      Список USB-устройств для подключения к виртуальной машине. Устройства указываются по имени ресурса USBDevice в том же пространстве имен.
      • spec.usbDevices.name
        строка
        Имя ресурса USBDevice в том же пространстве имен.

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

    • spec.virtualMachineClassName
      строка

      Обязательный параметр

      Имя ресурса VirtualMachineClass, который описывает требования к виртуальному CPU и памяти, а также политику размещения ресурсов.

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

    • spec.virtualMachineIPAddressName
      строка

      Имя для связанного ресурса virtualMachineIPAddress.

      Указывается при необходимости использования ранее созданного IP-адреса ВМ.

      Если не указано явно, по умолчанию для ВМ создаётся ресурс virtualMachineIPAddress с именем, аналогичным ресурсу ВМ (.metadata.name).

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

  • status
    объект
    • status.blockDeviceRefs
      массив объектов
      Список блочных устройств, подключенных к ВМ.
      • status.blockDeviceRefs.attached
        булевый
        Блочное устройство подключено к виртуальной машине.
      • status.blockDeviceRefs.hotplugged
        булевый
        Блочное устройство подключено к виртуальной машине «на лету».
      • status.blockDeviceRefs.kind
        строка
        Тип блочного устройства.

        Допустимые значения: ClusterVirtualImage, VirtualImage, VirtualDisk

      • status.blockDeviceRefs.name
        строка
        Имя существующего ресурса.
      • status.blockDeviceRefs.size
        строка
        Размер подключённого блочного устройства.
      • status.blockDeviceRefs.target
        строка
        Название подключённого блочного устройства.

        Пример:

        target: sda
        
      • status.blockDeviceRefs.virtualMachineBlockDeviceAttachmentName
        строка
        Имя ресурса VirtualMachineBlockDeviceAttachment, который описывает подключение диска к виртуальной машине «на лету».
    • status.conditions
      массив объектов
      Состояние во время работы виртуальной машины.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

        Максимальная длина: 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.guestOSInfo
      объект

      Информация о гостевой ОС, полученная от агента (QEMU Guest Agent). Агент должен быть предварительно установлен.

      Подробнее об агенте: https://www.qemu.org/docs/master/interop/qemu-ga.html.

    • status.ipAddress
      строка
      IP-адрес ВМ.
    • status.migrationState
      объект
      Информация о миграции виртуальной машины.
      • status.migrationState.endTimestamp
        строка
        Время окончания миграции.
      • status.migrationState.result
        строка
        Результат миграции: Succeeded или Failed.

        Допустимые значения: ‘’, Succeeded, Failed

      • status.migrationState.source
        объект
        • status.migrationState.source.node
          строка
          Имя узла, на котором в данный момент запущена ВМ.
        • status.migrationState.source.pod
          строка
          Имя пода, на котором в данный момент запущена виртуальная машина.
      • status.migrationState.startTimestamp
        строка
        Время начала миграции.
      • status.migrationState.target
        объект
        • status.migrationState.target.node
          строка
          Имя узла, на который в данный момент выполняется миграция виртуальной машины.
        • status.migrationState.target.pod
          строка
          Имя модуля, в который в данный момент выполняется миграция виртуальной машины.
    • status.networks
      массив объектов
      Список сетевых интерфейсов, подключенных к ВМ.
      • status.networks.id
        целочисленный
        ID сетевого интерфейса.
      • status.networks.macAddress
        строка
        MAC-адрес сетевого интерфейса.
      • status.networks.name
        строка
        Имя сетевого интерфейса.
      • status.networks.type
        строка
        Тип сетевого интерфейса.
      • status.networks.virtualMachineMACAddressName
        строка
        Имя ресурса VirtualMachineMACAddress связанного с сетевым интерфейсом.
    • status.nodeName
      строка
      Имя узла, на котором в данный момент запущена ВМ.
    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Текущее состояние виртуальной машины:

      • Scheduling — ВМ запланирована для размещения на узлах кластера;
      • Pending — осуществляется процесс запуска ВМ;
      • Running — ВМ запущена;
      • Degraded — в процессе запуска или работы ВМ произошла ошибка;
      • Terminating — в настоящий момент ВМ завершает свою работу;
      • Stopped — ВМ остановлена.

      Допустимые значения: Pending, Running, Degraded, Terminating, Stopped, Stopping, Starting, Migrating, Pause

    • status.resources
      объект
      Статистика использования ресурсов.
      • status.resources.cpu
        объект
        Статистика использования ресурсов CPU.
        • status.resources.cpu.coreFraction
          строка
          Текущее значение coreFraction.
        • status.resources.cpu.cores
          целочисленный

          Обязательный параметр

          Текущее количество ядер виртуальной машины.
        • status.resources.cpu.requestedCores
          строка или число
          Количество ядер CPU, запрошенных виртуальной машиной.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

        • status.resources.cpu.runtimeOverhead
          строка или число
          Накладные расходы на CPU во время выполнения.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

        • status.resources.cpu.topology
          объект
          Информация о текущей топологии CPU.
          • status.resources.cpu.topology.coresPerSocket
            целочисленный

            Обязательный параметр

            Количество ядер CPU на один сокет виртуальной машины.
          • status.resources.cpu.topology.sockets
            целочисленный

            Обязательный параметр

            Текущее количество сокетов виртуальной машины.
      • status.resources.memory
        объект
        Статистика использования ресурсов памяти.
        • status.resources.memory.runtimeOverhead
          строка или число
          Накладные расходы на память во время выполнения.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

        • status.resources.memory.size
          строка или число

          Обязательный параметр

          Текущий размер памяти виртуальной машины.

          Шаблон: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

    • status.restartAwaitingChanges
      массив объектов
      Список изменений в конфигурации, требующих перезапуска ВМ.
    • status.stats
      объект
      Статистика по виртуальной машине.
      • status.stats.launchTimeDuration
        объект
        Информация о запуске.
        • status.stats.launchTimeDuration.guestOSAgentStarting
          строка
          Время ожидания запуска guestOsAgent. running -> running с guestOSAgent."
        • status.stats.launchTimeDuration.virtualMachineStarting
          строка
          Время ожидания запуска виртуальной машины. starting -> running.
        • status.stats.launchTimeDuration.waitingForDependencies
          строка
          Время ожидания зависимых ресурсов. pending -> starting.
      • status.stats.phasesTransitions
        массив объектов
        История по фазам.
        • status.stats.phasesTransitions.phase
          строка
          Фаза виртуальной машины.

          Допустимые значения: Pending, Running, Degraded, Terminating, Stopped, Stopping, Starting, Migrating, Pause

        • status.stats.phasesTransitions.timestamp
          строка
          Время перехода в данную фазу.
    • status.usbDevices
      массив объектов
      Список USB-устройств, подключенных к виртуальной машине.
      • status.usbDevices.address
        объект
        USB-адрес внутри виртуальной машины.
        • status.usbDevices.address.bus
          целочисленный
          Номер USB-шины (всегда 0 для основного USB-контроллера).
        • status.usbDevices.address.port
          целочисленный
          Номер USB-порта на выбранной шине.
      • status.usbDevices.attached
        булевый
        USB-устройство подключено к виртуальной машине.
      • status.usbDevices.hotplugged
        булевый
        USB-устройство подключено через горячее подключение.
      • status.usbDevices.name
        строка
        Имя ресурса USBDevice.
      • status.usbDevices.ready
        булевый
        USB-устройство готово к использованию.
    • status.versions
      объект
      Версии гипервизора.
      • status.versions.libvirt
        строка
        Версия libvirt.
      • status.versions.qemu
        строка
        Версия qemu.
    • status.virtualMachineIPAddressName
      строка
      Имя virtualMachineIPAddressName, содержащее IP-адрес виртуальной машины.
    • status.virtualMachinePods
      массив объектов
      Список подов виртуальной машины.
      • status.virtualMachinePods.active
        булевый
        Отметка активного пода.
      • status.virtualMachinePods.name
        строка
        Имя пода.

VirtualMachineSnapshotOperation

Scope: Namespaced
Version: v1alpha2

Данный ресурс позволяет декларативно управлять изменением состояний виртуальных машин (ВМ).
  • 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.createVirtualMachine
      объект
      Определяет параметры операции создания виртуальной машины из снимка.
      • spec.createVirtualMachine.customization
        объект
        Определяет параметры кастомизации для создания виртуальной машины.
        • spec.createVirtualMachine.customization.namePrefix
          строка
          Добавляет префикс к именам ресурсов при создании. Применяется к ресурсам VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment и Secret.
        • spec.createVirtualMachine.customization.nameSuffix
          строка
          Добавляет суффикс к именам ресурсов при создании. Применяется к ресурсам VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment и Secret.
      • spec.createVirtualMachine.mode
        строка

        Обязательный параметр

        Режим клонирования:

        • DryRun — запуск без выполнения создания. Конфликты и несоответствия фиксируются в статусе операции.
        • Strict — строгий режим клонирования «как в исходной ВМ». Отсутствие внешних зависимостей может привести к тому, что клонированная виртуальная машина после создания будет находиться в состоянии Pending;
        • BestEffort — режим клонирования с удалением отсутствующих внешних зависимостей (ClusterVirtualImage, VirtualImage) из спецификации виртуальной машины.

        Допустимые значения: DryRun, Strict, BestEffort

      • spec.createVirtualMachine.nameReplacement
        массив объектов
        Определяет правила переименования ресурсов при создании виртуальной машины.
        • spec.createVirtualMachine.nameReplacement.from
          объект
          Селектор для выбора ресурсов для переименования.
          • spec.createVirtualMachine.nameReplacement.from.kind
            строка
            Тип ресурса для переименования.

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

          • spec.createVirtualMachine.nameReplacement.from.name
            строка

            Обязательный параметр

            Текущее имя ресурса для переименования.

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

        • spec.createVirtualMachine.nameReplacement.to
          строка
          Новое имя ресурса.

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

    • spec.type
      строка

      Обязательный параметр

      Тип операции, выполняемой над снимком виртуальной машины:

      • CreateVirtualMachine — создать виртуальную машину из снимка.

      Допустимые значения: CreateVirtualMachine

    • spec.virtualMachineSnapshotName
      строка

      Обязательный параметр

      Имя снимка виртуальной машины, для которого выполняется операция.

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

  • status
    объект
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия.

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

      • status.conditions.type
        строка
        Тип условия.

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

        Шаблон: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$

    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Обязательный параметр

      Представляет текущее состояние ресурса:

      • Pending — операция поставлена в очередь на выполнение;
      • InProgress — операция в процессе выполнения;
      • Completed — операция прошла успешно;
      • Failed — операция завершилась неудачно. За подробностями обратитесь к полю conditions и событиям;
      • Terminating — операция удаляется.

      Допустимые значения: Pending, InProgress, Completed, Failed, Terminating

    • status.resources
      массив объектов
      Содержит список ресурсов, затронутых операцией создания из снимка.
      • status.resources.apiVersion
        строка
        API версия ресурса.
      • status.resources.kind
        строка
        Тип ресурса.
      • status.resources.message
        строка
        Сообщение о ресурсе.
      • status.resources.name
        строка
        Имя ресурса.
      • status.resources.status
        строка
        Статус ресурса.

        Допустимые значения: InProgress, Completed, Failed

VirtualMachineSnapshot

Scope: Namespaced
Version: v1alpha2

VirtualMachineSnapshot предоставляет ресурс для создания снимков виртуальных машин.
  • 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.keepIPAddress
      строка

      Обязательный параметр

      Сохранить IP-адрес виртуальной машины или нет:

      • Always - при создании снимка IP-адрес виртуальной машины будет сконвертирован из Auto в Static и сохранён;
      • Never - при создании снимка IP-адрес виртуальной машины не будет сконвертирован.

      По умолчанию: Always

      Допустимые значения: Always, Never

    • spec.requiredConsistency
      булевый

      Обязательный параметр

      Создавать снимок виртуальной машины только в том случае, если возможно заморозить её через агента.

      Если установлено значение true, снимок виртуальной машины будет создан только в следующих случаях:

      • виртуальная машина выключена;
      • виртуальная машина с агентом, операция заморозки прошла успешно.

      По умолчанию: true

    • spec.virtualMachineName
      строка

      Обязательный параметр

      Имя виртуальной машины для создания снимка.

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

  • status
    объект
    • status.conditions
      массив объектов
      Последнее подтверждённое состояние данного ресурса.
      • status.conditions.lastTransitionTime
        строка
        Время перехода условия из одного состояния в другое.
      • status.conditions.message
        строка
        Удобочитаемое сообщение с подробной информацией о последнем переходе.

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

      • status.conditions.observedGeneration
        целочисленный
        .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время имеет значение 12, а .status.conditions[x].observedgeneration имеет значение 9, то условие устарело.

        Допустимые значения: 0 <= X

      • status.conditions.reason
        строка
        Краткая причина последнего перехода состояния.

        Длина: 1..1024

        Шаблон: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        строка
        Статус условия. Возможные значения: True, False, Unknown.

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

      • status.conditions.type
        строка
        Тип условия.

        Максимальная длина: 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.consistent
      булевый
      Снимок виртуальной машины консистентен.
    • status.observedGeneration
      целочисленный
      Поколение ресурса, которое в последний раз обрабатывалось контроллером.
    • status.phase
      строка

      Обязательный параметр

      Текущее состояние ресурса VirtualMachineSnapshot:

      • Pending — ресурс был создан и находится в очереди ожидания;
      • InProgress — идёт процесс создания снимка виртуальной машины;
      • Ready — создание снимка успешно завершено, и он доступен для использования;
      • Failed — во время создания снимка виртуальной машины произошла ошибка;
      • Terminating — ресурс находится в процессе удаления.

      Допустимые значения: Pending, InProgress, Ready, Failed, Terminating

    • status.resources
      массив объектов
      Список ресурсов снимка.
      • status.resources.apiVersion
        строка
        API version of the resource.
      • status.resources.kind
        строка
        Kind of the resource.
      • status.resources.name
        строка
        Name of the resource.
    • status.virtualDiskSnapshotNames
      массив строк
      Имена созданных снимков виртуальных дисков.
    • status.virtualMachineSnapshotSecretName
      строка
      Имя созданного секрета с информацией о снимке виртуальной машины.