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

ClusterVirtualImage

Scope: Cluster
Version: v1alpha2

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

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

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

  • 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.
        • spec.dataSource.objectRef.namespace
          строка
          Пространство имён, в котором расположен ресурс VirtualImage, VirtualDisk или VirtualDiskSnapshot.
      • spec.dataSource.type
        строка

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

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

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

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

VirtualDisk

Scope: Namespaced
Version: v1alpha2

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

После создания VirtualDisk можно изменить только размер диска с помощью поля .spec.persistentVolumeClaim.size. Все остальные поля изменить нельзя.

  • 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.
      • 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.

VirtualDiskSnapshot

Scope: Namespaced
Version: v1alpha2

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

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

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

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

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

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

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

    • spec.virtualDiskName
      строка

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

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

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

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

VirtualImage

Scope: Namespaced
Version: v1alpha2

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

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

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

  • 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.
      • 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

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
        строка
        Имя блочного устройства.
    • spec.virtualMachineName
      строка

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

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

VirtualMachineClass

Scope: Cluster
Version: v1alpha2

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

  • требования к виртуальному 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.
        • 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.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.

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

VirtualMachineIPAddressLease

Scope: Cluster
Version: v1alpha2

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

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

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

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

        Пространство имён ссылающегося ресурса VirtualMachineIPAddress.

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.force
      булевый
      Форсирует выполнение операции. Применяется только для операций Restart и Stop. В этом случае действие над виртуальной машиной выполняется немедленно.
    • spec.type
      строка

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

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

      • Start - запустить виртуальную машину;
      • Stop - остановить виртуальную машину;
      • Restart - перезапустить виртуальную машину;
      • Migrate (устаревшее значение) - мигрировать виртуальную машину на другой узел, доступный для запуска данной ВМ;
      • Evict - мигрировать виртуальную машину на другой узел, доступный для запуска данной ВМ.

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

    • spec.virtualMachineName
      строка

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

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

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
          строка
          Тип ресурса.
        • spec.nameReplacements.from.name
          строка

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

          Имя ресурса, которое нужно переименовать.
      • spec.nameReplacements.to
        строка
        Новое имя ресурса.
    • spec.virtualMachineSnapshotName
      строка

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

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

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

VirtualMachine

Scope: Namespaced
Version: v1alpha2

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

  • .metadata.labels;
  • .metadata.annotations;
  • .spec.disruptions.restartApprovalMode.
  • .spec.runPolicy.
  • 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
        строка
        Имя ресурса заданного типа.
    • 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, которая будет выделена ВМ. Указывается в процентах.

        По умолчанию: 100%

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

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

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

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

    • spec.disruptions
      объект

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

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

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

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

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

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

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

    • spec.enableParavirtualization
      булевый

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

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

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

    • spec.memory
      объект

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

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

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

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

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

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

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

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

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

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

    • spec.priorityClassName
      строка
      По аналогии с параметром подов spec.priorityClassName в Kubernetes.
    • 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
          строка

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

          Имя ресурса со сценарием автоматизации.
      • 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.
    • 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.virtualMachineClassName
      строка

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

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

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

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

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

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

    • spec.volumeSnapshotClasses
      массив объектов
      • spec.volumeSnapshotClasses.storageClassName
        строка
        Имя ресурса StorageClass, соответствующее указанному ресурсу VolumeSnapshotClass.
      • spec.volumeSnapshotClasses.volumeSnapshotClassName
        строка
        Имя ресурса VolumeSnapshotClass, который будет использован для создания снимков виртуальных дисков с соответствующим классом хранения.