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

ClusterVirtualImage

Scope: Cluster
Version: v1alpha2

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

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

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

  • spec
    объект
    • spec.dataSource
      объект

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

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

          Пример:

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

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

          Путь к образу в container registry.

          Шаблон: ^(?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
            строка
            Имя Secret’а, содержащего учетные данные для подключения к container registry.
          • 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.
        • spec.dataSource.objectRef.kind
          строка

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

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

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

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

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

          Имя существующего VirtualImage, ClusterVirtualImage или VirtualDisk.
        • spec.dataSource.objectRef.namespace
          строка
          Имя namespace’а, гда ресположен VirtualImage или VirtualDisk.
      • spec.dataSource.type
        строка

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

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

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

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

VirtualDisk

Scope: Namespaced
Version: v1alpha2

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

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

  • spec
    объект
    • spec.dataSource
      объект
      Тип источника, из которого будет создан диск. Если источник (.spec.dataSource) отсутствует, то будет создан пустой диск.
      • spec.dataSource.containerImage
        объект
        Для использования образа, хранящегося во внешнем реестре контейнеров, необходимо убедиться, что используется реестр, работающий по протоколу TLS. При необходимости предоставьте поле caBundle для передачи цепочки сертификатов.
        • spec.dataSource.containerImage.caBundle
          строка
          Цепочка сертификатов в формате Base64 для проверки подключения к container registry.

          Пример:

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

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

          Путь к образу в container registry.

          Шаблон: ^(?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
            строка
            Имя Secret’а, содержащего учетные данные для подключения к container registry.
      • 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.

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

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

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

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

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

        Тип источника, из которого будет создан диск:

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

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

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

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

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

        Шаблон: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$

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

        Имя StorageClass, требуемого для PersistentVolumeClaim. Дополнительная информация — https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.

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

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

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

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

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

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

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

        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 напрямую.

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

Под капотом этого ресурса создается образ контейнера, хранящийся в специальном container registry (DVCR).

  • spec
    объект
    • spec.dataSource
      объект

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

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

          Пример:

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

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

          Путь к образу в container registry.

          Шаблон: ^(?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
            строка
            Имя Secret’а, содержащего учетные данные для подключения к container registry.
      • 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.
        • spec.dataSource.objectRef.kind
          строка

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

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

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

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

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

          Имя существующего VirtualImage, ClusterVirtualImage или VirtualDisk.
      • spec.dataSource.type
        строка

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

        Тип источника, из которого будет создан образ:

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

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

    • spec.storage
      строка

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

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

      • ContainerRegistry — использовать container registry (DVCR). В этом случае образы будут загружаться в контейнер, а затем в DVCR (поставляется с модулем виртуализации).
      • Kubernetes - использовать Persistent Volume Claim (PVC).

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

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

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

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

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

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

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

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

      • 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
      массив объектов
      Политика выделения вычислительных ресурсов ВМ. Представлена в виде списка. Диапазоны cores.min - cores.max для разных элементов списка не должны пересекаться.
      • 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
          

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 - мигрировать виртуальную машину на другой узел, доступный для запуска данной ВМ.

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

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

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

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

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

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

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

VirtualMachine

Scope: Namespaced
Version: v1alpha2

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

  • .metadata.labels
  • .metadata.annotations
  • .spec.disruptions.restartApprovalMode
  • .spec.disruptions.runPolicy
  • spec
    объект
    • spec.affinity
      объект

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

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

      • podAffinity -> virtualMachineAndPodAffinity;
      • podAffinityTerm -> virtualMachineAndPodAffinityTerm.
      • spec.affinity.nodeAffinity
        объект
        Описывает правила affiniy узлов для ВМ.
        • 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
        объект
        Описывает правила affiniy подов и ВМ.
        • 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-affiniy пода и ВМ.
        • 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-образом, он будет смонтирован как устройство CDROM.
        • VirtualImage — использовать VirtualImage в качестве диска. Этот тип всегда монтируется в режиме для чтения (ReadOnly). Если образ является ISO-образом, он будет смонтирован как устройство CDROM.
        • VirtualDisk — используйте VirtualDisk в качестве диска. Этот тип всегда монтируется в режиме для чтения и записи (ReadWrite).

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

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

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

      • BIOS — использовать BIOS.
      • EFI — использовать Unified Extensible Firmware (EFI/UEFI).
      • EFIWithSecureBoot — использовать UEFI/EFI с поддержкой SecureBoot.

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

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

    • spec.cpu
      объект

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

      Блок определяет настройки ЦП для виртуальной машины.
      • spec.cpu.coreFraction
        строка
        Гарантированная доля времени ЦП, которая будет выделена ВМ. Указывается в процентах.

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

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

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

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

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

    • spec.disruptions
      объект

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

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

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

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

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

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

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

    • spec.enableParavirtualization
      булевый

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

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

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

    • spec.memory
      объект

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

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

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

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

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

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

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

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

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

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

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

        Текст сценария cloud-init.

        Дополнительная информация: https://cloudinit.readthedocs.io/en/latest/reference/examples.html

      • spec.provisioning.userDataRef
        объект

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

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

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

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

          Тип ресурса. Необходимо использовать секрет с типом - “provisioning.virtualization.deckhouse.io/cloud-init”.

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

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

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

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

          Имя ресурса со сценарием cloud-init.
    • spec.runPolicy
      строка

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

      • AlwaysOn — после создания ВМ всегда находится в работающем состоянии, даже в случае ее выключения средствами ОС.
      • AlwaysOff — после создания ВМ всегда находится в выключенном состоянии.
      • Manual — после создания ВМ выключается, состояние ВМ (включение/выключение) контролируется через API-сервисы или средствами ОС.
      • AlwaysOnUnlessStoppedManually — после создания ВМ всегда находится в работающем состоянии, даже в случае ее выключения средствами ОС, ВМ может быть выключена с помощью соответствующего API-сервиса.

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

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

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

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

    • spec.tolerations
      массив объектов
      По аналогии, как и в параметре pods spec.tolerations в Kubernetes.
      • spec.tolerations.effect
        строка
      • spec.tolerations.key
        строка
      • spec.tolerations.operator
        строка
      • spec.tolerations.tolerationSeconds
        целочисленный
      • spec.tolerations.value
        строка
    • spec.topologySpreadConstraints
      массив объектов
      По аналогии, как и в параметре pods 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 - при создании снимка адреса виртуальный машины будет конвертирован из Auto в Static и сохранен.
      • Never - при создании снимка адрес виртуальной машины не будет конвертирован.

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

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

    • spec.requiredConsistency
      булевый

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

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

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

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

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

    • spec.virtualMachineName
      строка

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

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

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

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