Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки
Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.
ClusterVirtualImage
Scope: Cluster
Version: v1alpha2
Описывает образ диска виртуальной машины, который может использоваться в качестве источника данных для новых ресурсов VirtualDisks или установочный образ (iso), который может быть смонтирован в ресурсе VirtualMachines напрямую. Данный тип ресурса доступен для всех пространств имен в кластере.
Этот ресурс не может быть изменён после создания.
После появления в кластере этого ресурса создаётся образ контейнера, который хранится в специальном реестре контейнеров Deckhouse Virtualization Container Registry (DVCR).
Важно: Поле metadata.name должно соответствовать правилам именования объектов Kubernetes и не должно превышать 48 символов.
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
объектspec.dataSource
Обязательный параметр
Тип источника, из которого будет создан образ.-
объектspec.dataSource.containerImageИспользование образа, который хранится во внешнем реестре контейнеров. Поддерживаются только реестры контейнеров с включённым протоколом TLS. Чтобы предоставить собственную цепочку центров сертификации, используйте поле
caBundle.-
строкаspec.dataSource.containerImage.caBundleЦепочка сертификатов в формате Base64 для проверки подключения к реестру контейнеров.
Пример:
caBundle: YWFhCg== -
строкаspec.dataSource.containerImage.image
Обязательный параметр
Путь к образу в реестре контейнеров.Шаблон:
^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$Пример:
image: registry.example.com/images/slackware:15 -
объектspec.dataSource.containerImage.imagePullSecret
-
строкаspec.dataSource.containerImage.imagePullSecret.nameИмя секрета, содержащего учётные данные для подключения к реестру контейнеров.
-
строкаspec.dataSource.containerImage.imagePullSecret.namespaceПространство имён, в котором находится
imagePullSecret.
-
-
-
объектspec.dataSource.http
Создание образа из файла, размещённого на указанном URL-адресе. Поддерживаемые схемы:
- HTTP;
- HTTPS.
Для схемы HTTPS есть возможность пропустить проверку TLS.
-
строкаspec.dataSource.http.caBundleЦепочка сертификатов в формате Base64 для проверки TLS-сертификата сервера, на котором размещается файл.
Пример:
caBundle: YWFhCg== -
объектspec.dataSource.http.checksumКонтрольная сумма файла для проверки целостности и отсутствия изменений в загруженных данных. Файл должен соответствовать всем указанным контрольным суммам.
-
строкаspec.dataSource.http.checksum.md5
Длина:
32..32Шаблон:
^[0-9a-fA-F]{32}$Пример:
md5: f3b59bed9f91e32fac1210184fcff6f5 -
строкаspec.dataSource.http.checksum.sha256
Длина:
64..64Шаблон:
^[0-9a-fA-F]{64}$Пример:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
строкаspec.dataSource.http.url
Обязательный параметр
URL-адрес, указывающий на файл для создания образа. Допустимые форматы файла:
- qcow2;
- vmdk;
- vdi;
- iso;
- raw.
Файл может быть сжат в архив в одном из следующих форматов:
- gz;
- xz.
Шаблон:
^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$Пример:
url: https://mirror.example.com/images/slackware-15.qcow.gz
-
объектspec.dataSource.objectRefИспользование существующего ресурса VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot для создания образа.
-
строкаspec.dataSource.objectRef.kind
Обязательный параметр
Ссылка на существующий ресурс VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.Допустимые значения:
ClusterVirtualImage,VirtualImage,VirtualDisk,VirtualDiskSnapshot -
строкаspec.dataSource.objectRef.name
Обязательный параметр
Имя существующего ресурса VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.Минимальная длина:
1 -
строкаspec.dataSource.objectRef.namespaceПространство имён, в котором расположен ресурс VirtualImage, VirtualDisk или VirtualDiskSnapshot.
-
-
строкаspec.dataSource.type
Обязательный параметр
Доступные типы источников для создания образа:
HTTP— из файла, опубликованного на HTTP/HTTPS-сервере;ContainerImage— из другого образа в реестре контейнеров;ObjectRef— из существующего ресурса;Upload— загрузить вручную.
Допустимые значения:
HTTP,ContainerImage,ObjectRef,Upload
-
-
-
объектstatus
-
булевыйstatus.cdromОпределяет, выполнен ли образ в формате, который должен быть смонтирован как устройство CD-ROM, таком как iso и др.
-
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
объектstatus.downloadSpeedСкорость загрузки образа из внешнего источника. Появляется только на этапе
Provisioning.-
строкаstatus.downloadSpeed.avgСредняя скорость загрузки.
Пример:
avg: 1 Mbps -
строкаstatus.downloadSpeed.avgBytesСредняя скорость загрузки в байтах в секунду.
Пример:
avgBytes: 1012345 -
строкаstatus.downloadSpeed.currentТекущая скорость загрузки.
Пример:
current: 5 Mbps -
строкаstatus.downloadSpeed.currentBytesТекущая скорость загрузки в байтах в секунду.
Пример:
currentBytes: 5123456
-
-
строкаstatus.formatОбнаруженный формат образа.
-
объектstatus.imageUploadURLs
-
строкаstatus.imageUploadURLs.externalКоманда для загрузки образа с использованием
Ingressвне кластера. -
строкаstatus.imageUploadURLs.inClusterКоманда для загрузки образа с использованием
Serviceвнутри кластера.
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Текущее состояние ресурса ClusterVirtualImage:
Pending- ресурс был создан и находится в очереди ожидания;Provisioning- идёт процесс создания ресурса: копирование, загрузка или создание образа;WaitForUserUpload- ожидание загрузки образа пользователем. Путь для загрузки образа указывается в.status.uploadCommand;Ready- ресурс создан и готов к использованию;Failed- при создании ресурса произошла ошибка;ImageLost— образ отсутствует в DVCR. Ресурс не может быть использован;Terminating- ресурс находится в процессе удаления.
Допустимые значения:
Pending,Provisioning,WaitForUserUpload,Ready,Failed,Terminating,ImageLost -
строкаstatus.progressХод копирования образа из источника в DVCR. Отображается только на этапе
Provisioning. -
объектstatus.sizeОбнаруженные данные о размере образа.
-
строкаstatus.size.storedРазмер образа в DVCR или PersistentVolumeClaim (PVC) в удобочитаемом формате.
Пример:
stored: 199M -
строкаstatus.size.storedBytesРазмер образа в DVCR или (PVC) в байтах.
Пример:
storedBytes: 199001234 -
строкаstatus.size.unpackedРазмер распакованного образа в удобочитаемом формате.
Пример:
unpacked: 1G -
строкаstatus.size.unpackedBytesРазмер распакованного образа в байтах.
Пример:
unpackedBytes: 1000000234
-
-
строкаstatus.sourceUIDUID источника (VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot), использованного при создании кластерного виртуального образа.
-
объектstatus.target
-
строкаstatus.target.registryURLОбраз, созданный в DVCR.
Пример:
registryURL: dvcr.<dvcr-namespace>.svc/cvi/<image-name>:latest
-
-
строкаstatus.uploadCommandУстаревшее поле. Используйте
imageUploadURLs. -
массив строкstatus.usedInNamespacesСписок пространств имён в которых используется образ.
-
NodeUSBDevice
Scope: Cluster
Version: v1alpha2
-
строкаapiVersionОпределяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindСтроковое значение, представляющее REST-ресурс, который представляет этот объект. Серверы могут выводить это из конечной точки, на которую клиент отправляет запросы. Не может быть обновлено. В формате CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
строкаspec.assignedNamespaceНеймспейс, в котором разрешено использование устройства. По умолчанию создаётся с пустым значением “”. При установке значения создаётся соответствующий ресурс USBDevice в этом неймспейсе.
По умолчанию:
‘’
-
-
объектstatus
-
объектstatus.attributesВсе атрибуты устройства, полученные через DRA для устройства.
-
строкаstatus.attributes.bcdBCD (Binary Coded Decimal) версия устройства.
-
строкаstatus.attributes.busНомер USB-шины.
-
строкаstatus.attributes.deviceNumberНомер USB-устройства на шине.
-
строкаstatus.attributes.devicePathПуть к устройству в файловой системе.
-
целочисленныйstatus.attributes.majorОсновной номер устройства.
-
строкаstatus.attributes.manufacturerНазвание производителя устройства.
-
целочисленныйstatus.attributes.minorВспомогательный номер устройства.
-
строкаstatus.attributes.nameИмя устройства.
-
строкаstatus.attributes.nodeNameИмя узла, на котором находится устройство.
-
строкаstatus.attributes.productНазвание продукта устройства.
-
строкаstatus.attributes.productIDUSB product ID в шестнадцатеричном формате.
-
строкаstatus.attributes.serialСерийный номер устройства.
-
целочисленныйstatus.attributes.speedСкорость устройства.
-
строкаstatus.attributes.vendorIDUSB vendor ID в шестнадцатеричном формате.
-
-
массив объектовstatus.conditionsПоследние доступные наблюдения текущего состояния объекта.
-
строкаstatus.conditions.lastTransitionTimeВремя последнего перехода условия из одного состояния в другое. Это должно быть время, когда изменилось базовое условие. Если это неизвестно, то допустимо использовать время, когда изменилось поле API.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробностями о переходе. Это может быть пустая строка.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationПредставляет
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение 12, а.status.conditions[x].observedGenerationимеет значение 9, то условие устарело по отношению к текущему состоянию экземпляра.Допустимые значения:
0 <= X -
строкаstatus.conditions.reason
Содержит программный идентификатор, указывающий причину последнего перехода условия. Производители конкретных типов условий могут определять ожидаемые значения и значения для этого поля, и являются ли эти значения гарантированным API. Значение должно быть строкой в формате CamelCase. Это поле не может быть пустым.
Для типа условия Ready возможные значения:
Ready— устройство готово к использованию;NotReady— устройство существует в системе, но не готово к использованию;NotFound— устройство отсутствует на хосте.
Для типа условия Assigned возможные значения:
Assigned— неймспейс назначен для устройства и создан соответствующий ресурс USBDevice в этом неймспейсе;Available— для устройства не назначен неймспейс;InProgress— подключение устройства к неймспейсу выполняется (создание ресурса USBDevice).
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusстатус условия, одно из True, False, Unknown.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.type
Тип условия в формате CamelCase или в формате foo.example.com/CamelCase. Поддерживаемые типы условий:
Ready— указывает, готово ли устройство к использованию. Когда reason — “Ready”, status — “True”. Когда reason — “NotReady” или “NotFound”, status — “False”. При переходе в NotFound ресурс остаётся в кластере, администратор может удалить его вручную. На основе lastTransitionTime может быть реализован Garbage Collector для автоматической очистки.Assigned— указывает, назначен ли неймспейс для устройства. Когда reason — “Assigned”, status — “True”. Когда reason — “Available” или “InProgress”, status — “False”.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
строкаstatus.nodeNameИмя узла, на котором находится USB-устройство.
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
USBDevice
Scope: Namespaced
Version: v1alpha2
-
строкаapiVersionОпределяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindСтроковое значение, представляющее REST-ресурс, который представляет этот объект. Серверы могут выводить это из конечной точки, на которую клиент отправляет запросы. Не может быть обновлено. В формате CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектstatusНаблюдаемое состояние
USBDevice.-
объектstatus.attributesВсе атрибуты устройства, полученные через DRA для устройства.
-
строкаstatus.attributes.bcdBCD (Binary Coded Decimal) версия устройства.
-
строкаstatus.attributes.busНомер USB-шины.
-
строкаstatus.attributes.deviceNumberНомер USB-устройства на шине.
-
строкаstatus.attributes.devicePathПуть к устройству в файловой системе.
-
целочисленныйstatus.attributes.majorОсновной номер устройства.
-
строкаstatus.attributes.manufacturerНазвание производителя устройства.
-
целочисленныйstatus.attributes.minorВспомогательный номер устройства.
-
строкаstatus.attributes.nameИмя устройства.
-
строкаstatus.attributes.nodeNameИмя узла, на котором находится устройство.
-
строкаstatus.attributes.productНазвание продукта устройства.
-
строкаstatus.attributes.productIDUSB product ID в шестнадцатеричном формате.
-
строкаstatus.attributes.serialСерийный номер устройства.
-
целочисленныйstatus.attributes.speedСкорость устройства.
-
строкаstatus.attributes.vendorIDUSB vendor ID в шестнадцатеричном формате.
-
-
массив объектовstatus.conditionsПоследние доступные наблюдения текущего состояния объекта.
-
строкаstatus.conditions.lastTransitionTimeВремя последнего перехода условия из одного состояния в другое. Это должно быть время, когда изменилось базовое условие. Если это неизвестно, то допустимо использовать время, когда изменилось поле API.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробностями о переходе. Может быть пустой строкой.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationПредставляет
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение 12, а.status.conditions[x].observedGenerationимеет значение 9, то условие устарело по отношению к текущему состоянию экземпляра.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonСодержит программный идентификатор, указывающий причину последнего перехода условия. Производители конкретных типов условий могут определять ожидаемые значения и значения для этого поля, и являются ли эти значения гарантированным API. Значение должно быть строкой в формате CamelCase. Поле не может быть пустым.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия в формате CamelCase или в формате foo.example.com/CamelCase.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
строкаstatus.nodeNameИмя узла, на котором находится USB-устройство.
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
VirtualDisk
Scope: Namespaced
Version: v1alpha2
Ресурс VirtualDisk описывает желаемую конфигурацию диска виртуальной машины. VirtualDisk можно смонтировать в виртуальной машине статически, указав его в списке дисков .spec.blockDeviceRefs, или «на лету» – с помощью ресурса VirtualMachineBlockDeviceAttachments.
После создания VirtualDisk в .spec.persistentVolumeClaim можно изменить поля size и storageClassName. Все остальные поля неизменяемы.
Важно: Поле metadata.name должно соответствовать правилам именования объектов Kubernetes и не должно превышать 60 символов.
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
объектspec.dataSourceТип источника, из которого будет создан диск. Если источник (
.spec.dataSource) отсутствует, будет создан пустой диск.-
объектspec.dataSource.containerImageИспользование образа, который хранится во внешнем реестре контейнеров. Поддерживаются только реестры контейнеров с включённым протоколом TLS. Чтобы предоставить собственную цепочку центров сертификации, используйте поле
caBundle.-
строкаspec.dataSource.containerImage.caBundleЦепочка сертификатов в формате Base64 для проверки подключения к реестру контейнеров.
Пример:
caBundle: YWFhCg== -
строкаspec.dataSource.containerImage.image
Обязательный параметр
Путь к образу в реестре контейнеров.Шаблон:
^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$Пример:
image: registry.example.com/images/slackware:15 -
объектspec.dataSource.containerImage.imagePullSecret
-
строкаspec.dataSource.containerImage.imagePullSecret.nameИмя секрета, содержащего учётные данные для подключения к реестру контейнеров.
-
-
-
объектspec.dataSource.http
Создание диска из файла, размещённого на указанном URL-адресе. Поддерживаемые схемы:
- HTTP;
- HTTPS.
Для схемы HTTPS есть возможность пропустить проверку TLS.
-
строкаspec.dataSource.http.caBundleЦепочка сертификатов в формате Base64 для проверки TLS-сертификата сервера, на котором размещается файл.
Пример:
caBundle: YWFhCg== -
объектspec.dataSource.http.checksumКонтрольная сумма файла для проверки целостности и отсутствия изменений в загруженных данных. Файл должен соответствовать всем указанным контрольным суммам.
-
строкаspec.dataSource.http.checksum.md5
Длина:
32..32Шаблон:
^[0-9a-fA-F]{32}$Пример:
md5: f3b59bed9f91e32fac1210184fcff6f5 -
строкаspec.dataSource.http.checksum.sha256
Длина:
64..64Шаблон:
^[0-9a-fA-F]{64}$Пример:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
строкаspec.dataSource.http.url
Обязательный параметр
URL-адрес, указывающий на файл для создания образа. Допустимые форматы файла:
- qcow2;
- vmdk;
- vdi;
- iso;
- raw.
Файл может быть сжат в архив в одном из следующих форматов:
- gz;
- xz.
Шаблон:
^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$Пример:
url: https://mirror.example.com/images/slackware-15.qcow.gz
-
объектspec.dataSource.objectRefИспользование существующего ресурса VirtualImage, ClusterVirtualImage или VirtualDiskSnapshot для создания диска.
-
строкаspec.dataSource.objectRef.kind
Обязательный параметр
Ссылка на существующий ресурс VirtualImage, ClusterVirtualImage или VirtualDiskSnapshot.Допустимые значения:
ClusterVirtualImage,VirtualImage,VirtualDiskSnapshot -
строкаspec.dataSource.objectRef.name
Обязательный параметр
Имя существующего ресурса VirtualImage, ClusterVirtualImage или VirtualDiskSnapshot.Минимальная длина:
1
-
-
строкаspec.dataSource.type
Доступные типы источников для создания диска:
HTTP— из файла, опубликованного на HTTP/HTTPS-сервере;ContainerImage— из образа в реестре контейнеров;ObjectRef— из существующего ресурса;Upload— загрузить образ диска вручную.
Допустимые значения:
HTTP,ContainerImage,ObjectRef,Upload
-
-
объектspec.persistentVolumeClaimНастройки для создания PersistentVolumeClaim (PVC) для хранения диска.
-
строка или числоspec.persistentVolumeClaim.size
Желаемый размер PVC для хранения диска. Если диск создается из образа, размер PVC должен быть не меньше размера исходного образа в распакованном состоянии.
Данный параметр можно опустить, если заполнен блок
.spec.dataSource. В этом случае контроллер определит размер диска автоматически, на основе размера распакованного образа из источника указанного в.spec.dataSource.Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
строкаspec.persistentVolumeClaim.storageClassName
Имя StorageClass, необходимого для PVC. Подробнее об использовании StorageClass для PVC: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1.
При создании дисков пользователь может явно указать необходимый StorageClass. Если этого не сделать, будет использован StorageClass, доступный по умолчанию.
Особенности диска и поведение виртуальной машины зависят от выбранного StorageClass.
Параметр
VolumeBindingModeв StorageClass влияет на процесс создания дисков. Допустимые значения:Immediate- диск будет создан и доступен для использования сразу после создания;WaitForFirstConsumer- диск будет создан при первом использовании на узле, где будет запущена виртуальная машина.
StorageClass поддерживает различные настройки хранения:
- создание блочного устройства (
Block) или файловой системы (FileSystem); - множественный доступ (
ReadWriteMany) или единичный доступ (ReadWriteOnce).ReadWriteMany-диски поддерживают множественный доступ, что позволяет выполнять «живую» миграцию виртуальных машин. В отличие от них,ReadWriteOnce-диски, ограниченные доступом только с одного узла, не могут обеспечить такую возможность.
Для известных типов хранилищ Deckhouse самостоятельно определит наиболее эффективные настройки при создании дисков (в порядке убывания приоритетов):
Block+ReadWriteMany;FileSystem+ReadWriteMany;Block+ReadWriteOnce;FileSystem+ReadWriteOnce.
-
-
-
объектstatus
-
массив объектовstatus.attachedToVirtualMachinesСписок виртуальных машин, использующих данный диск.
Пример:
attachedToVirtualMachines: - name: VM100-
булевыйstatus.attachedToVirtualMachines.mountedFlag indicating that VirtualDisk is currently being used by this attached VirtualMachine.
-
строкаstatus.attachedToVirtualMachines.nameName of attached VirtualMachine.
-
-
строкаstatus.capacityЁмкость PVC в удобочитаемом формате.
Пример:
capacity: 50G -
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
объектstatus.downloadSpeedСкорость загрузки образа из внешнего источника. Появляется только на этапе
Provisioning.-
строкаstatus.downloadSpeed.avgСредняя скорость загрузки.
Пример:
avg: 1 Mbps -
строкаstatus.downloadSpeed.avgBytesСредняя скорость загрузки в байтах в секунду.
Пример:
avgBytes: 1012345 -
строкаstatus.downloadSpeed.currentТекущая скорость загрузки.
Пример:
current: 5 Mbps -
строкаstatus.downloadSpeed.currentBytesТекущая скорость загрузки в байтах в секунду.
Пример:
currentBytes: 5123456
-
-
объектstatus.imageUploadURLs
-
строкаstatus.imageUploadURLs.externalКоманда для загрузки образа с использованием
Ingressвне кластера. -
строкаstatus.imageUploadURLs.inClusterКоманда для загрузки образа с использованием
Serviceвнутри кластера.
-
-
объектstatus.migrationStateИнформация о происходящей миграции диска.
-
строкаstatus.migrationState.endTimestampВремя окончания миграции.
-
строкаstatus.migrationState.messageПодробное сообщение об ошибке миграции.
-
строкаstatus.migrationState.resultРезультат миграции.
Допустимые значения:
Succeeded,Failed -
строкаstatus.migrationState.sourcePVCИмя исходного PersistentVolumeClaim.
-
строкаstatus.migrationState.startTimestampВремя начала миграции.
-
строкаstatus.migrationState.targetPVCИмя целевого PersistentVolumeClaim.
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Текущее состояние ресурса VirtualDisk:
Pending— ресурс был создан и находится в очереди ожидания;Provisioning— идёт процесс создания ресурса: копирование, загрузка или создание диска;WaitForUserUpload— ожидание загрузки образа пользователем. Путь для загрузки образа указывается в.status.uploadCommand;WaitForFirstConsumer- ожидание пока использующая данный диск виртуальная машина не будет назначена на узел;Ready— ресурс создан и готов к использованию;Resizing— идёт процесс увеличения размера диска;Failed— при создании ресурса произошла ошибка;PVCLost— дочерний PVC ресурса отсутствует. Ресурс не может быть использован;Exporting- дочерний PV ресурса находится в процессе экспорта;Terminating- ресурс находится в процессе удаления.
Допустимые значения:
Pending,Provisioning,WaitForUserUpload,WaitForFirstConsumer,Ready,Resizing,Failed,PVCLost,Exporting,Terminating,Migrating -
строкаstatus.progressХод копирования образа из источника в DVCR. Отображается только на этапе
Provisioning. -
строкаstatus.sourceUIDUID источника (VirtualImage или ClusterVirtualImage), использованного при создании виртуального диска.
-
объектstatus.statsСтатистика по виртуальному диску.
-
объектstatus.stats.creationDurationВремя создания виртуального диска.
-
строкаstatus.stats.creationDuration.dvcrProvisioningДлительность загрузки в Deckhouse Virtualization Container Registry (DVCR).
-
строкаstatus.stats.creationDuration.totalProvisioningДлительность создания ресурса (копирование, загрузка и создание диска) с момента готовности зависимостей до перехода ресурса в состояние
Ready. -
строкаstatus.stats.creationDuration.waitingForDependenciesДлительность ожидания зависимостей для создания виртуального диска.
-
-
-
строкаstatus.storageClassNameИмя StorageClass, использованного для создания DataVolume.
-
объектstatus.target
-
строкаstatus.target.persistentVolumeClaimNameИмя созданного PVC для хранилища Kubernetes.
-
-
строкаstatus.uploadCommandУстаревшее поле. Используйте
imageUploadURLs.
-
VirtualDiskSnapshot
Scope: Namespaced
Version: v1alpha2
Предоставляет ресурс для создания снимков существующих виртуальных дисков, которые могут быть использованы в качестве источников данных для создания новых виртуальных дисков.
В процессе выполнения автоматически создаётся ресурс VolumeSnapshot.
-
объектspec
-
булевыйspec.requiredConsistency
Создавать снимок диска подключённой виртуальной машины только в том случае, если возможно заморозить её через агента.
Если установлено значение
True, снимок виртуального диска будет создан, если выполняется хотя бы одно из следующих условий:- виртуальный диск не подключен ни к одной виртуальной машине;
- виртуальный диск подключен к виртуальной машине, которая выключена;
- виртуальный диск подключен к виртуальной машине с агентом, и операция заморозки прошла успешно.
По умолчанию:
true -
строкаspec.virtualDiskName
Обязательный параметр
Имя виртуального диска, для которого будет создан снимок.Минимальная длина:
1
-
-
объектstatus
-
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
булевыйstatus.consistentСнимок виртуального диска консистентен.
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Текущее состояние ресурса VirtualDiskSnapshot:
Pending— ресурс был создан и находится в очереди ожидания;InProgress— идёт процесс создания снимка виртуального диска;Ready— создание снимка успешно завершено, и снимок виртуального диска доступен для использования;Failed— во время создания снимка виртуального диска произошла ошибка;Terminating— ресурс находится в процессе удаления.
Допустимые значения:
Pending,InProgress,Ready,Failed,Terminating -
строкаstatus.volumeSnapshotNameИмя созданного ресурса VolumeSnapshot.
-
VirtualImage
Scope: Namespaced
Version: v1alpha2
Описывает образ диска виртуальной машины, который может использоваться в качестве источника данных для новых ресурсов VirtualDisks или установочный образ (iso), который может быть смонтирован в ресурс VirtualMachines напрямую.
Этот ресурс не может быть изменён после создания.
После появления в кластере этого ресурса создаётся образ контейнера, который хранится в специальном реестре контейнеров Deckhouse Virtualization Container Registry (DVCR).
Важно: Поле metadata.name должно соответствовать правилам именования объектов Kubernetes и не должно превышать 49 символов.
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
объектspec.dataSource
Обязательный параметр
Тип источника, из которого будет создан образ.-
объектspec.dataSource.containerImageИспользование образа, который хранится во внешнем реестре контейнеров. Поддерживаются только реестры контейнеров с включённым протоколом TLS. Чтобы предоставить собственную цепочку центров сертификации, используйте поле
caBundle.-
строкаspec.dataSource.containerImage.caBundleЦепочка сертификатов в формате Base64 для проверки подключения к реестру контейнеров.
Пример:
caBundle: YWFhCg== -
строкаspec.dataSource.containerImage.image
Обязательный параметр
Путь к образу в реестре контейнеров.Шаблон:
^(?P<name>(?:(?P<domain>(?:(?:localhost|[\w-]+(?:\.[\w-]+)+)(?::\d+)?)|[\w]+:\d+)/)?(?P<image>[a-z0-9_.-]+(?:/[a-z0-9_.-]+)*))(?::(?P<tag>[\w][\w.-]{0,127}))?(?:@(?P<digest>[A-Za-z][A-Za-z0-9]*(?:[+.-_][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,}))?$Пример:
image: registry.example.com/images/slackware:15 -
объектspec.dataSource.containerImage.imagePullSecret
-
строкаspec.dataSource.containerImage.imagePullSecret.nameИмя секрета, содержащего учётные данные для подключения к реестру контейнеров.
-
-
-
объектspec.dataSource.http
Создание образа из файла, размещённого на указанном URL-адресе. Поддерживаемые схемы:
- HTTP;
- HTTPS.
Для схемы HTTPS есть возможность пропустить проверку TLS.
-
строкаspec.dataSource.http.caBundleЦепочка сертификатов в формате Base64 для проверки TLS-сертификата сервера, на котором размещается файл.
Пример:
caBundle: YWFhCg== -
объектspec.dataSource.http.checksumКонтрольная сумма файла для проверки целостности и отсутствия изменений в загруженных данных. Файл должен соответствовать всем указанным контрольным суммам.
-
строкаspec.dataSource.http.checksum.md5
Длина:
32..32Шаблон:
^[0-9a-fA-F]{32}$Пример:
md5: f3b59bed9f91e32fac1210184fcff6f5 -
строкаspec.dataSource.http.checksum.sha256
Длина:
64..64Шаблон:
^[0-9a-fA-F]{64}$Пример:
sha256: 78be890d71dde316c412da2ce8332ba47b9ce7a29d573801d2777e01aa20b9b5
-
-
строкаspec.dataSource.http.url
Обязательный параметр
URL-адрес, указывающий на файл для создания образа. Допустимые форматы файла:
- qcow2;
- vmdk;
- vdi;
- iso;
- raw.
Файл может быть сжат в архив в одном из следующих форматов:
- gz;
- xz.
Шаблон:
^http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$Пример:
url: https://mirror.example.com/images/slackware-15.qcow.gz
-
объектspec.dataSource.objectRefИспользование существующего ресурса VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot для создания образа.
-
строкаspec.dataSource.objectRef.kind
Обязательный параметр
Ссылка на существующий ресурс VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.Допустимые значения:
ClusterVirtualImage,VirtualImage,VirtualDisk,VirtualDiskSnapshot -
строкаspec.dataSource.objectRef.name
Обязательный параметр
Имя существующего ресурса VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot.Минимальная длина:
1
-
-
строкаspec.dataSource.type
Доступные типы источников для создания образа:
HTTP— из файла, опубликованного на HTTP/HTTPS-сервере;ContainerImage— из образа в реестре контейнеров;ObjectRef— из существующего ресурса;Upload— загрузить образ диска вручную.
Допустимые значения:
HTTP,ContainerImage,ObjectRef,Upload
-
-
объектspec.persistentVolumeClaimНастройки для создания PersistentVolumeClaim (PVC) для хранения образа с хранилищем типа ‘PersistentVolumeClaim’.
-
строкаspec.persistentVolumeClaim.storageClassName
Имя StorageClass, необходимого для PVC. Подробнее об использовании StorageClass для PVC: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
При создании образа с хранилищем типа ‘PersistentVolumeClaim’ пользователь может явно указать необходимый StorageClass для создания диска. Если этого не сделать, будет использован StorageClass, доступный по умолчанию.
-
-
строкаspec.storage
Обязательный параметр
Тип хранилища для образа:
ContainerRegistry— использовать реестр контейнеров DVCR. В этом случае образы будут загружаться в контейнер, а затем в DVCR (поставляется с модулем виртуализации);Kubernetes- устаревший тип хранилища. Не рекомендуется к использованию и может быть удалён в будущих версиях. Используйте типPersistentVolumeClaim;PersistentVolumeClaim- использовать PVC.
По умолчанию:
ContainerRegistryДопустимые значения:
ContainerRegistry,Kubernetes,PersistentVolumeClaim
-
-
объектstatus
-
булевыйstatus.cdromОпределяет, выполнен ли образ в формате, который должен быть смонтирован как устройство CD-ROM, таком как iso и др.
-
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
объектstatus.downloadSpeedСкорость загрузки образа из внешнего источника. Появляется только на этапе
Provisioning.-
строкаstatus.downloadSpeed.avgСредняя скорость загрузки.
Пример:
avg: 1 Mbps -
строкаstatus.downloadSpeed.avgBytesСредняя скорость загрузки в байтах в секунду.
Пример:
avgBytes: 1012345 -
строкаstatus.downloadSpeed.currentТекущая скорость загрузки.
Пример:
current: 5 Mbps -
строкаstatus.downloadSpeed.currentBytesТекущая скорость загрузки в байтах в секунду.
Пример:
currentBytes: 5123456
-
-
строкаstatus.formatОбнаруженный формат образа.
-
объектstatus.imageUploadURLs
-
строкаstatus.imageUploadURLs.externalКоманда для загрузки образа с использованием
Ingressвне кластера. -
строкаstatus.imageUploadURLs.inClusterКоманда для загрузки образа с использованием
Serviceвнутри кластера.
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Текущее состояние ресурса VirtualImage:
Pending— ресурс был создан и находится в очереди ожидания;Provisioning— идёт процесс создания ресурса: копирование, загрузка или создание образа;WaitForUserUpload— ожидание загрузки образа пользователем. Путь для загрузки образа указывается в.status.uploadCommand;Ready— ресурс создан и готов к использованию;Failed— при создании ресурса возникла ошибка. За подробностями обратитесь к полям.status.failureReasonи.status.failureMessage;ImageLost— образ отсутствует в DVCR. Ресурс не может быть использован;PVCLost— дочерний PVC ресурса отсутствует. Ресурс не может быть использован;Terminating- ресурс находится в процессе удаления.
Допустимые значения:
Pending,Provisioning,WaitForUserUpload,Ready,Failed,Terminating,ImageLost,PVCLost -
строкаstatus.progressХод копирования образа из источника в DVCR. Отображается только на этапе
Provisioning. -
объектstatus.sizeОбнаруженные данные о размере образа.
-
строкаstatus.size.storedРазмер образа в DVCR в удобочитаемом формате.
Пример:
stored: 199M -
строкаstatus.size.storedBytesРазмер образа в DVCR в байтах.
Пример:
storedBytes: 199001234 -
строкаstatus.size.unpackedРазмер распакованного образа в удобочитаемом формате.
Пример:
unpacked: 1G -
строкаstatus.size.unpackedBytesРазмер распакованного образа в байтах.
Пример:
unpackedBytes: 1000000234
-
-
строкаstatus.sourceUIDUID источника (VirtualImage, ClusterVirtualImage, VirtualDisk или VirtualDiskSnapshot), использованного при создании виртуального образа.
-
строкаstatus.storageClassNameИмя StorageClass, использованного для создания DataVolume, если в поле
storageбыл выбран типKubernetes. -
объектstatus.target
-
строкаstatus.target.persistentVolumeClaimNameИмя созданного PersistentVolumeClaim для хранилища Kubernetes.
-
строкаstatus.target.registryURLОбраз, созданный в DVCR.
Пример:
registryURL: dvcr.<dvcr-namespace>.svc/vi/<image-namespace>/<image-name>:latest
-
-
строкаstatus.uploadCommandУстаревшее поле. Используйте
imageUploadURLs.
-
VirtualMachineBlockDeviceAttachment
Scope: Namespaced
Version: v1alpha2
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
объектspec.blockDeviceRef
Обязательный параметр
Блочное устройство, которое будет подключено к ВМ в качестве hot-plug-диска.-
строкаspec.blockDeviceRef.kind
Тип блочного устройства. Возможные типы:
VirtualDisk— использоватьVirtualDiskв качестве диска. Этот тип всегда монтируется в режиме RW.VirtualImage— использоватьVirtualImageв качестве диска. Этот тип всегда монтируется в режиме RO.ClusterVirtualImage- использоватьClusterVirtualImageв качестве диска. Этот тип всегда монтируется в режиме RO.
Допустимые значения:
VirtualDisk,VirtualImage,ClusterVirtualImage -
строкаspec.blockDeviceRef.nameИмя блочного устройства.
Минимальная длина:
1
-
-
строкаspec.virtualMachineName
Обязательный параметр
Имя виртуальной машины, к которой подключен диск.Минимальная длина:
1
-
-
объектstatus
-
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Текущее состояние ресурса:
Pending— ресурс был создан и находится в очереди ожидания;InProgress— диск находится в процессе подключения к ВМ;Attached— диск подключен к ВМ;Failed— при подключении диска произошла ошибка;Terminating— ресурс находится в процессе удаления.
Допустимые значения:
Pending,InProgress,Attached,Failed,Terminating -
строкаstatus.virtualMachineNameИмя виртуальной машины, к которой подключен данный диск.
-
VirtualMachineClass
Scope: Cluster
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
объектspec.cpu
Обязательный параметр
CPU defines the requirements for the virtual CPU model.-
объектspec.cpu.discoveryCreate a CPU model based on intersecting CPU features for selected nodes.
-
объектspec.cpu.discovery.nodeSelectorA selection of nodes to be used as the basis for creating a universal CPU model.
-
массив объектовspec.cpu.discovery.nodeSelector.matchExpressionsmatchExpressions is a list of label selector requirements. The requirements are ANDed.
-
строкаspec.cpu.discovery.nodeSelector.matchExpressions.keykey is the label key that the selector applies to.
-
строкаspec.cpu.discovery.nodeSelector.matchExpressions.operatoroperator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
-
массив строкspec.cpu.discovery.nodeSelector.matchExpressions.valuesvalues is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
-
-
объектspec.cpu.discovery.nodeSelector.matchLabelsmatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
-
-
-
массив строкspec.cpu.featuresList of CPU instructions (features) required when type=Features. For more information about CPU features, refer to the libvirt docs.
Пример:
features: - mmx - vmx - sse2 -
строкаspec.cpu.modelCPU model name. For more information about CPU models and topology, refer to the libvirt docs.
Минимальная длина:
1Пример:
model: IvyBridge -
строкаspec.cpu.type
Обязательный параметр
CPUType defines the CPU type, the following options are supported:
Host: Uses a virtual CPU with an instruction set closely matching the platform node’s CPU. This provides high performance and functionality, as well as compatibility with “live” migration for nodes with similar processor types. For example, VM migration between nodes with Intel and AMD processors will not work. This is also true for different CPU generations, as their instruction set is different.HostPassthrough: Uses the platform node’s physical CPU directly, without any modifications. When using this class, the guest VM can only be transferred to a target node with a CPU exactly matching the source node’s CPU.Discovery: Create a virtual CPU based on instruction sets of physical CPUs for a selected set of nodes.Model: CPU model. A CPU model is a named and previously defined set of supported CPU instructions.Features: A required set of supported instructions for the CPU.
Допустимые значения:
Host,HostPassthrough,Discovery,Model,Features
-
-
объектspec.nodeSelectorNodeSelector defines the nodes targeted for VM scheduling.
-
массив объектовspec.nodeSelector.matchExpressionsA list of node selector requirements by node’s labels.
-
строкаspec.nodeSelector.matchExpressions.keyThe label key that the selector applies to.
-
строкаspec.nodeSelector.matchExpressions.operatorRepresents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
-
массив строкspec.nodeSelector.matchExpressions.valuesAn array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
-
-
объектspec.nodeSelector.matchLabelsA map of {key,value} pairs. A single {key,value} pair in the matchLabels map is equivalent to an element of matchExpressions whose key field is “key”, operator is “In”, and the value array contains only “value”. The requirements are ANDed.
-
-
массив объектовspec.sizingPolicies
-
массив строкspec.sizingPolicies.coreFractionsAllowed values of the
coreFractionparameter in percentages (e.g., “5%”, “10%”, “25%”, “50%”, “100%”).-
строкаspec.sizingPolicies.coreFractions.Элемент массиваCoreFractionValue represents CPU core fraction as a percentage string (e.g., “5%”, “10%”, “25%”, “50%”, “100%”).
-
-
объектspec.sizingPolicies.coresThe policy applies for a specified range of the number of CPU cores.
-
целочисленныйspec.sizingPolicies.cores.max
Обязательный параметр
Maximum number of CPU cores.Допустимые значения:
X <= 1024Пример:
max: 10 -
целочисленныйspec.sizingPolicies.cores.min
Обязательный параметр
Minimum number of CPU cores.Допустимые значения:
1 <= XПример:
min: 1 -
целочисленныйspec.sizingPolicies.cores.stepDiscretization step for the CPU core number. For example, the combination of
min=2,max=10, andstep=4allows to set the number of virtual machine CPU cores to 2, 6, or 10.Допустимые значения:
1 <= XПример:
step: 1
-
-
массив булевых значенийspec.sizingPolicies.dedicatedCoresAllowed values of the
dedicatedCoresparameter. -
строкаspec.sizingPolicies.defaultCoreFractionA default
CoreFractionvalue for aVirtualMachineif it is not provided. -
объектspec.sizingPolicies.memoryMemory sizing policy.
-
строка или числоspec.sizingPolicies.memory.maxMaximum amount of memory.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
max: 8Gi -
строка или числоspec.sizingPolicies.memory.minMinimum amount of memory.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
min: 1Gi -
объектspec.sizingPolicies.memory.perCoreAmount of memory per CPU core.
-
строка или числоspec.sizingPolicies.memory.perCore.maxMaximum amount of memory.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
max: 8Gi -
строка или числоspec.sizingPolicies.memory.perCore.minMinimum amount of memory.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
min: 1Gi
-
-
строка или числоspec.sizingPolicies.memory.stepMemory size discretization step. For example, the combination of
min=2Gi,max=4Giandstep=1Gi` allows to set the virtual machine memory size to 2Gi, 3Gi, or 4Gi.Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
step: 512Mi
-
-
-
массив объектовspec.tolerationsTolerations are the same as
spec.tolerationsfor pods. These tolerations will be merged with the tolerations specified in the VirtualMachine resource. VirtualMachine tolerations have a higher priority.-
строкаspec.tolerations.effectEffect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
-
строкаspec.tolerations.keyKey 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.operatorOperator 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.tolerationSecondsTolerationSeconds 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.valueValue is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
-
-
-
объектstatus
-
массив строкstatus.availableNodesList of nodes that support this CPU model. It is not displayed for the following types:
Host,HostPassthrough.Пример:
availableNodes: - node-1 - node-2 -
массив объектовstatus.conditionsThe latest detailed observations of the VirtualMachineClass resource.
-
строкаstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
строкаstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
объектstatus.cpuFeaturesCpuFeatures Information on CPU features supported by this model. Shown only for
FeaturesorDiscoverytypes.-
массив строкstatus.cpuFeatures.enabledList of CPU features for this model.
Пример:
enabled: - mmx - vmx - sse2 -
массив строкstatus.cpuFeatures.notEnabledCommonList of unused processor features additionally available for a given group of nodes.
Пример:
notEnabledCommon: - ssse3 - vme
-
-
объектstatus.maxAllocatableResourcesMaximum amount of free CPU and memory resources observed among all available nodes.
Пример:
maxAllocatableResources: - 'maxAllocatableResources: {"cpu": 1, "memory": "10Gi"}' -
целочисленныйstatus.observedGenerationResource generation last processed by the controller.
-
строкаstatus.phase
Обязательный параметр
VirtualMachineClassPhase defines the current resource status:
Pending: The resource is not ready and waits until the suitable nodes supporting the required CPU model are available.Ready: The resource is ready and available for use.Terminating: The resource is terminating.
Допустимые значения:
Pending,Ready,Terminating
-
Данный ресурс описывает:
- требования к виртуальному CPU;
- требования к размещению виртуальных машин (ВМ) на узлах;
- политику определения размера ресурсов ВМ.
Этот ресурс не может быть удалён, пока он используется хотя бы на одной ВМ.
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
объектspec.cpu
Обязательный параметр
Блок описания требований к виртуальному CPU.-
объектspec.cpu.discovery
Создать универсальную модель виртуального CPU на основе наборов инструкций, которые поддерживаются на всех физических CPU узлов выборки.
Допустим, у нас есть выборка из трёх узлов, где на каждом узле есть физические CPU с различными наборами инструкций. Набор инструкций физического CPU-узла 1:
[f1, f2, f3, f4], для узла 2:[f1, f2], и для узла 3:[f1, f2, f3]. Для создания универсальной модели CPU для этой выборки узлов необходимо объединить общие инструкции, присущие всем узлам, то есть[f1, f2]. В результате мы получим виртуальный CPU с набором инструкций[f1, f2].-
объектspec.cpu.discovery.nodeSelectorВыборка узлов, на основе которой будет создана универсальная модель CPU.
-
массив объектовspec.cpu.discovery.nodeSelector.matchExpressionsСписок селекторов лейблов. Требования селекторов объединяются, т.е. должны выполняться все условия списка. Под лейблом понимается пара:
ключ = значение.-
строкаspec.cpu.discovery.nodeSelector.matchExpressions.keyНазвание ключа лейбла, к которому применяется селектор.
-
строкаspec.cpu.discovery.nodeSelector.matchExpressions.operator
Оператор определяет отношение ключа лейбла к набору его значений. Допустимые операторы:
In,NotIn,ExistsиDoesNotExist:In- значение ключа лейбла входит в заданный список лейбловvalues;NotIn- значение ключа лейбла не входит в заданный список лейбловvalues;Exist- ключ лейбла существует;DoesNotExist- ключ лейбла не существует. -
массив строкspec.cpu.discovery.nodeSelector.matchExpressions.valuesСтроковый список значений. Если выбран оператор
InилиNotIn, список значений не должен быть пустым. Если выбран операторExistsилиDoesNotExist, список значений должен быть пустым.
-
-
объектspec.cpu.discovery.nodeSelector.matchLabels
Карта пар
ключ=значение. Одна параключ=значениедляmatchLabelsэквивалентна элементуmatchExpressions, ключевым полем которого являетсяключ, оператором -In, а список значений содержит толькозначение.Для выборки по данному критерию все значения логически суммируются.
-
-
-
массив строкspec.cpu.featuresНеобходимые инструкции для процессора в виде списка. Дополнительная информация о поддерживаемых инструкциях.
Пример:
features: - mmx - vmx - sse2 -
строкаspec.cpu.modelНазвание модели процессора. Дополнительная информация о моделях.
Минимальная длина:
1Пример:
model: IvyBridge -
строкаspec.cpu.type
Обязательный параметр
В качестве типа ресурса поддерживаются следующие варианты:
Host- используется виртуальный CPU, максимально близкий к CPU узла платформы по набору инструкций. Это обеспечивает высокую производительность и функциональность, а также совместимость с «живой» миграцией для узлов с похожими типами процессоров. Например, миграция ВМ между узлами с процессорами Intel и AMD не будет работать. Это также справедливо для процессоров разных поколений, так как набор инструкций у них отличается;HostPassthrough- используется физический CPU узла платформы напрямую, без каких-либо изменений. При использовании данного класса гостевая ВМ может быть перенесена только на целевой узел, у которого CPU точно соответствует CPU исходного узла;Discovery- создание виртуального CPU на основе наборов инструкций физических CPU для заданного набора узлов;Model- модель процессора. Модель процессора - это именованный и предварительно определённый набор поддерживаемых инструкций процессора;Features- необходимый набор поддерживаемых инструкций для процессора.
Допустимые значения:
Host,HostPassthrough,Discovery,Model,Features
-
-
объектspec.nodeSelectorСелектор узлов, на которые разрешено планировать ВМ для запуска.
-
массив объектовspec.nodeSelector.matchExpressionsСписок селекторов лейблов. Требования селекторов объединяются, т.е. должны выполняться все условия списка. Под лейблом понимается пара:
ключ = значение.-
строкаspec.nodeSelector.matchExpressions.keyНазвание ключа лейбла, к которому применяется селектор.
-
строкаspec.nodeSelector.matchExpressions.operator
Оператор определяет отношение ключа лейбла к набору его значений. Допустимые операторы:
In,NotIn,ExistsиDoesNotExist:In- значение ключа лейбла входит в заданный список лейбловvalues;NotIn- значение ключа лейбла не входит в заданный список лейбловvalues;Exist- ключ лейбла существует;DoesNotExist- ключ лейбла не существует. -
массив строкspec.nodeSelector.matchExpressions.valuesСтроковый список значений. Если выбран оператор
InилиNotIn, список значений не должен быть пустым. Если выбран операторExistsилиDoesNotExist, список значений должен быть пустым.
-
-
объектspec.nodeSelector.matchLabels
Карта пар
ключ=значение. Одна параключ=значениедляmatchLabelsэквивалентна элементуmatchExpressions, ключевым полем которого является «ключ», оператором - «In», а список значений содержит только «значение».Для выборки по данному критерию все значения логически суммируются.
-
-
массив объектовspec.sizingPolicies
-
массив целых чиселspec.sizingPolicies.coreFractionsДопустимые значения параметра
coreFractionв процентах (например, “5%”, “10%”, “25%”, “50%”, “100%”).-
целочисленныйspec.sizingPolicies.coreFractions.Элемент массива
Допустимые значения:
1 <= X <= 100
-
-
объектspec.sizingPolicies.coresПолитика применяется для заданного диапазона числа ядер CPU.
-
целочисленныйspec.sizingPolicies.cores.max
Обязательный параметр
Максимальное число ядер CPU.Допустимые значения:
X <= 1024Пример:
max: 10 -
целочисленныйspec.sizingPolicies.cores.min
Обязательный параметр
Минимальное число ядер CPU.Допустимые значения:
1 <= XПример:
min: 1 -
целочисленныйspec.sizingPolicies.cores.stepШаг увеличения числа ядер CPU.
Допустимые значения:
1 <= XПример:
step: 1
-
-
массив булевых значенийspec.sizingPolicies.dedicatedCoresДопустимые значения параметра
dedicatedCores. -
целочисленныйspec.sizingPolicies.defaultCoreFractionЗначение
coreFractionпо умолчанию для VirtualMachineClass. Используется при создании ВМ, еслиcoreFractionне задан явно.Допустимые значения:
1 <= X <= 100 -
объектspec.sizingPolicies.memoryПолитика определения размера памяти.
-
строка или числоspec.sizingPolicies.memory.maxМаксимальный объём памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
max: 8Gi -
строка или числоspec.sizingPolicies.memory.minМинимальный объём памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
min: 1Gi -
объектspec.sizingPolicies.memory.perCoreОбъём памяти на одно ядро процессора.
-
строка или числоspec.sizingPolicies.memory.perCore.maxМаксимальный объём памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
max: 8Gi -
строка или числоspec.sizingPolicies.memory.perCore.minМинимальный объём памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
min: 1Gi
-
-
строка или числоspec.sizingPolicies.memory.stepШаг увеличения объёма памяти.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$Пример:
step: 512Mi
-
-
-
массив объектовspec.tolerationsПараметр аналогичен параметру
spec.tolerationsу подов. Подробнее о taints и tolerations. Tolerations из этого параметра будут объединены с tolerations, указанными в ресурсе VirtualMachine. При этом, tolerations у VirtualMachine имеют больший приоритет.-
строкаspec.tolerations.effectEffect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
-
строкаspec.tolerations.keyKey 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.operatorOperator 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.tolerationSecondsTolerationSeconds 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.valueValue is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
-
-
-
объектstatus
-
массив строкstatus.availableNodesСписок узлов, поддерживающих данную модель процессора. Не отображается для следующих типов:
Host,HostPassthrough.Пример:
availableNodes: - node-1 - node-2 -
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
объектstatus.cpuFeaturesИнформация о поддерживаемых наборах инструкций процессора для данной модели. Отображается только для
type=Features.-
массив строкstatus.cpuFeatures.enabledСписок наборов инструкций CPU для данной модели.
Пример:
enabled: - mmx - vmx - sse2 -
массив строкstatus.cpuFeatures.notEnabledCommonСписок неиспользуемых инструкций CPU, дополнительно доступных для данной группы узлов.
Пример:
notEnabledCommon: - ssse3 - vme
-
-
объектstatus.maxAllocatableResourcesМаксимальные размеры свободных ресурсов процессора и памяти, найденные среди всех доступных узлов.
Пример:
maxAllocatableResources: - 'maxAllocatableResources: {"cpu": 1, "memory": "10Gi"}' -
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Обязательный параметр
Текущий статус ресурса:
Pending- ресурс не готов и ожидает, пока станут доступны подходящие узлы, поддерживающие требуемую модель процессора;Ready- ресурс готов и доступен для использования;Terminating- ресурс находится в процессе удаления.
Допустимые значения:
Pending,Ready,Terminating
-
VirtualMachineIPAddress
Scope: Namespaced
Version: v1alpha2
-
строкаapiVersion
-
строкаkind
-
объектmetadata
-
объектspecНастройки ресурса VirtualMachineIPAddress.
-
строкаspec.staticIPЗапрашиваемый статический IP-адрес, который должен быть присвоен виртуальной машине. Поле является обязательным в случае, если для параметра
typeзадано значениеStatic. -
строкаspec.type
Обязательный параметр
Определяет режим присвоения IP-адреса. Возможные значения:
Auto– для автоматического присвоения IP-адреса;Static– для присвоения определенного IP-адреса.
Допустимые значения:
Auto,Static
-
-
объектstatus
-
строкаstatus.addressНазначенный IP-адрес.
-
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Представляет текущее состояние ресурса VirtualMachineIPAddress.
Pending- выполняется создание ресурса;Bound- ресурс VirtualMachineIPAddress привязан к ресурсу VirtualMachineIPAddressLease;Attached- ресурс VirtualMachineIPAddress подключен к ресурсу VirtualMachine.
Допустимые значения:
Pending,Bound,Attached -
строкаstatus.virtualMachineNameИмя виртуальной машины, которая в настоящее время использует данный IP-адрес.
-
VirtualMachineIPAddressLease
Scope: Cluster
Version: v1alpha2
-
строкаapiVersion
-
строкаkind
-
объектmetadata
-
объектspecПараметры конфигурации ресурса VirtualMachineIPAddressLease.
-
объектspec.virtualMachineIPAddressRefСсылка на существующие ресурсы VirtualMachineIPAddress.
-
строкаspec.virtualMachineIPAddressRef.name
Обязательный параметр
Имя ссылающегося ресурса VirtualMachineIPAddress. -
строкаspec.virtualMachineIPAddressRef.namespace
Обязательный параметр
Пространство имён ссылающегося ресурса VirtualMachineIPAddress.
-
-
-
объектstatus
-
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Представляет текущее состояние ресурса VirtualMachineIPAddressLease.
Bound- ресурс VirtualMachineIPAddressLease привязан к ресурсу VirtualMachineIPAddress;Released- ресурс VirtualMachineIPAddressLease доступен для связки с новым ресурсом VirtualMachineIPAddress.
Допустимые значения:
Bound,Released
-
VirtualMachineMACAddress
Scope: Namespaced
Version: v1alpha2
-
строкаapiVersion
-
строкаkind
-
объектmetadata
-
объектspecНастройки
VirtualMachineMACAddress.-
строкаspec.addressЗапрашиваемый MAC-адрес, который должен быть присвоен сетевому интерфейсу виртуальной машины. Если поле пустое, MAC-адрес генерируется автоматически: первые три октета (OUI) формируются на основе UID кластера, а последние три октета выбираются случайным образом из диапазона 00:00:00 до FF:FF:FF.
Шаблон:
^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$
-
-
объектstatus
-
строкаstatus.addressНазначенный MAC-адрес.
-
массив объектовstatus.conditionsПоследнее подтвержденное состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
observedGenerationпредставляет собой .metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Представляет текущее состояние ресурса
VirtualMachineMACAddress. Возможные значения:Pending— ресурс создается.Bound— ресурсVirtualMachineMACAddressпривязан к ресурсуVirtualMachineMACAddressLease.Attached— ресурсVirtualMachineMACAddressподключен к ресурсуVirtualMachine.
Допустимые значения:
Pending,Bound,Attached -
строкаstatus.virtualMachineNameИмя виртуальной машины, которая в настоящее время использует этот MAC-адрес.
-
VirtualMachineMACAddressLease
Scope: Cluster
Version: v1alpha2
-
строкаapiVersion
-
строкаkind
-
объектmetadata
-
объектspecПараметры конфигурации
VirtualMachineMACAddressLease.-
объектspec.virtualMachineMACAddressRefСсылка на существующие
VirtualMachineMACAddress.-
строкаspec.virtualMachineMACAddressRef.name
Обязательный параметр
Имя ссылающегосяVirtualMachineMACAddress. -
строкаspec.virtualMachineMACAddressRef.namespace
Обязательный параметр
Пространство имен ссылающегосяVirtualMachineMACAddress.
-
-
-
объектstatus
-
массив объектовstatus.conditionsПоследнее подтвержденное состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
observedGenerationпредставляет собой.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Представляет текущее состояние ресурса
VirtualMachineMACAddressLease. Возможные значения:Bound— ресурсVirtualMachineMACAddressLeaseпривязан к ресурсуVirtualMachineMACAddress.
Допустимые значения:
Bound
-
VirtualMachineOperation
Scope: Namespaced
Version: v1alpha2
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
объектspec.cloneОпределяет операцию клонирования.
-
объектspec.clone.customizationОпределяет параметры кастомизации для клонирования.
-
строкаspec.clone.customization.namePrefixДобавляет префикс к именам ресурсов при клонировании. Применяется к ресурсам VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment и Secret.
-
строкаspec.clone.customization.nameSuffixДобавляет суффикс к именам ресурсов при клонировании. Применяется к ресурсам VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment и Secret.
-
-
строкаspec.clone.mode
Обязательный параметр
Режим клонирования:
DryRun— запуск без выполнения клонирования. Конфликты и несоответствия фиксируются в статусе операции.Strict— строгий режим клонирования «как в исходной ВМ». Отсутствие внешних зависимостей может привести к тому, что клонированная виртуальная машина после создания будет находиться в состоянииPending;BestEffort— режим клонирования с удалением отсутствующих внешних зависимостей (ClusterVirtualImage, VirtualImage) из спецификации виртуальной машины.
Допустимые значения:
DryRun,Strict,BestEffort -
массив объектовspec.clone.nameReplacementОпределяет правила переименования ресурсов при клонировании.
-
объектspec.clone.nameReplacement.fromСелектор для выбора ресурсов для переименования.
-
строкаspec.clone.nameReplacement.from.kindТип ресурса для переименования.
Минимальная длина:
1 -
строкаspec.clone.nameReplacement.from.name
Обязательный параметр
Текущее имя ресурса для переименования.Минимальная длина:
1
-
-
строкаspec.clone.nameReplacement.toНовое имя ресурса.
Минимальная длина:
1
-
-
-
булевыйspec.force
Форсирует выполнение операции.
- Для операций
RestartиStop: выполнить операцию немедленно. - Для операции
EvictиMigrate: включить функцию AutoConverge для принудительной миграции через замедление CPU, если для живой миграции используются политикиPreferSafeилиPreferForced.
- Для операций
-
объектspec.migrateОпределяет операцию миграции виртуальной машины.
-
объектspec.migrate.nodeSelector
Селектор меток узла для планирования виртуальной машины на узел. Должен соответствовать меткам целевого узла. По аналогии с параметром подов
spec.nodeSelectorв Kubernetes.Поле
nodeSelectorнедоступно в Community Edition.
-
-
объектspec.restoreОпределяет операцию восстановления из снимка.
-
строкаspec.restore.mode
Обязательный параметр
Режим восстановления:
DryRun— запуск без выполнения восстановления. Конфликты и несоответствия фиксируются в статусе операции.Strict— строгий режим восстановления «как в снимке». Отсутствие внешних зависимостей может привести к тому, что виртуальная машина после восстановления будет находиться в состоянииPending;BestEffort— режим восстановления с удалением отсутствующих внешних зависимостей (ClusterVirtualImage, VirtualImage, Secret) из спецификации виртуальной машины.
Допустимые значения:
DryRun,Strict,BestEffort -
строкаspec.restore.virtualMachineSnapshotName
Обязательный параметр
Имя снимка виртуальной машины, который используется как источник для операции восстановления.Минимальная длина:
1
-
-
строкаspec.type
Обязательный параметр
Операции над виртуальной машиной:
Start— запустить виртуальную машину;Stop— остановить виртуальную машину;Restart— перезапустить виртуальную машину;Migrate— мигрировать виртуальную машину на другой узел, на котором её можно запустить;Evict— вытеснить виртуальную машину на другой узел, на котором её можно запустить;Restore— восстановить виртуальную машину из снимка;Clone— клонировать виртуальную машину.
Допустимые значения:
Restart,Start,Stop,Migrate,Evict,Restore,Clone -
строкаspec.virtualMachineName
Обязательный параметр
Имя виртуальной машины, для которой выполняется операция.Минимальная длина:
1
-
-
объектstatus
-
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Обязательный параметр
Представляет текущее состояние ресурса:
Pending— операция поставлена в очередь на выполнение;InProgress— операция в процессе выполнения;Completed— операция прошла успешно;Failed— операция завершилась неудачно. За подробностями обратитесь к полюconditionsи событиям;Terminating— операция удаляется.
Допустимые значения:
Pending,InProgress,Completed,Failed,Terminating -
массив объектовstatus.resourcesСодержит список ресурсов, затронутых операцией снимка.
-
строкаstatus.resources.apiVersionAPI версия ресурса.
-
строкаstatus.resources.kindТип ресурса.
-
строкаstatus.resources.messageСообщение о ресурсе.
-
строкаstatus.resources.nameИмя ресурса.
-
строкаstatus.resources.statusСтатус ресурса.
Допустимые значения:
InProgress,Completed,Failed
-
-
VirtualMachineRestore
Scope: Namespaced
Version: v1alpha2
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
массив объектовspec.nameReplacementsПравила переименования ресурсов виртуальной машины.
-
объектspec.nameReplacements.fromСелектор для выбора ресурсов для переименования.
-
строкаspec.nameReplacements.from.kindТип ресурса.
Минимальная длина:
1 -
строкаspec.nameReplacements.from.name
Обязательный параметр
Имя ресурса, которое нужно переименовать.Минимальная длина:
1
-
-
строкаspec.nameReplacements.toНовое имя ресурса.
Минимальная длина:
1
-
-
строкаspec.restoreMode
Режим восстановления виртуальной машины:
- Safe — безопасный режим. В этом режиме виртуальная машина не будет восстановлена, если в процессе восстановления будут обнаружены неразрешимые конфликты.
- Forced — режим принудительного восстановления. В этом режиме конфигурация виртуальной машины будет обновлена, а все связанные ресурсы будут пересозданы. Работа виртуальной машины может быть нарушена, если процесс восстановления завершится неудачно. Используйте, когда необходимо восстановить виртуальную машину несмотря на конфликты.
По умолчанию:
SafeДопустимые значения:
Safe,Forced -
строкаspec.virtualMachineSnapshotName
Обязательный параметр
Имя снимка для восстановления виртуальной машины.Минимальная длина:
1
-
-
объектstatus
-
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Обязательный параметр
Текущее состояние ресурса VirtualMachineRestore:
Pending— ресурс был создан и находится в очереди ожидания;InProgress— идёт процесс восстановления виртуальной машины из снимка;Ready— виртуальная машина успешно восстановлена из снимка;Failed— произошла ошибка во время процесса восстановления виртуальной машины из снимка;Terminating— ресурс находится в процессе удаления.
Допустимые значения:
Pending,InProgress,Ready,Failed,Terminating
-
VirtualMachine
Scope: Namespaced
Version: v1alpha2
Ресурс, описывающий конфигурацию и статус виртуальной машины (ВМ). На запущенной ВМ изменённые параметры применятся только после перезагрузки, за исключением следующих параметров, которые применяются «на лету»:
.metadata.labels;.metadata.annotations;.spec.disruptions.restartApprovalMode..spec.runPolicy.
Важно: Поле metadata.name должно соответствовать правилам именования объектов Kubernetes и не должно превышать 63 символов.
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
объектspec.affinity
По аналогии, как и в параметре подов
spec.affinityв Kubernetes.Настройка
affinityполностью аналогична приведённой выше документации, за исключением названий некоторых параметров. Используются следующие аналоги:podAffinity->virtualMachineAndPodAffinity;podAffinityTerm->virtualMachineAndPodAffinityTerm.
-
объектspec.affinity.nodeAffinityОписывает affinity-правила узлов для ВМ.
-
массив объектовspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
-
объектspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
-
массив объектовspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
-
строкаspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.key
-
строкаspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator
-
массив строкspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
-
строкаspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values.Элемент массива
-
-
-
массив объектовspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields
-
строкаspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.key
-
строкаspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator
-
массив строкspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
-
строкаspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values.Элемент массива
-
-
-
-
целочисленныйspec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Допустимые значения:
1 <= X <= 100
-
-
объектspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
-
массив объектовspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
Обязательный параметр
-
массив объектовspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
-
строкаspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key
-
строкаspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
-
массив строкspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
-
строкаspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values.Элемент массива
-
-
-
массив объектовspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
-
строкаspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key
-
строкаspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
-
массив строкspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
-
строкаspec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values.Элемент массива
-
-
-
-
-
-
объектspec.affinity.virtualMachineAndPodAffinityОписывает affinity-правила подов и ВМ.
-
массив объектовspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution
-
объектspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
-
объектspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
-
массив объектовspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
-
строкаspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
-
строкаspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
-
массив строкspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
-
строкаspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Элемент массива
-
-
-
объектspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
-
-
массив строкspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
-
строкаspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Элемент массива
-
-
массив строкspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
-
строкаspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys.Элемент массива
-
-
объектspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
-
массив объектовspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
-
строкаspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
-
строкаspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
-
массив строкspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
-
строкаspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Элемент массива
-
-
-
объектspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
-
-
массив строкspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
-
строкаspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Элемент массива
-
-
строкаspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
Обязательный параметр
-
-
целочисленныйspec.affinity.virtualMachineAndPodAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Допустимые значения:
1 <= X <= 100
-
-
массив объектовspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution
-
объектspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
-
массив объектовspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
-
строкаspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
-
строкаspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
-
массив строкspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
-
строкаspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Элемент массива
-
-
-
объектspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
-
-
массив строкspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
-
строкаspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Элемент массива
-
-
массив строкspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
-
строкаspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys.Элемент массива
-
-
объектspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
-
массив объектовspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
-
строкаspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
-
строкаspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
-
массив строкspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
-
строкаspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Элемент массива
-
-
-
объектspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
-
-
массив строкspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
-
строкаspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Элемент массива
-
-
строкаspec.affinity.virtualMachineAndPodAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
-
-
-
объектspec.affinity.virtualMachineAndPodAntiAffinityОписывает anti-affinity-правила пода и ВМ.
-
массив объектовspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
-
объектspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm
-
объектspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector
-
массив объектовspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.key
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.operator
-
массив строкspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchExpressions.values.Элемент массива
-
-
-
объектspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.labelSelector.matchLabels
-
-
массив строкspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.matchLabelKeys.Элемент массива
-
-
массив строкspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.mismatchLabelKeys.Элемент массива
-
-
объектspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector
-
массив объектовspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.key
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.operator
-
массив строкspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchExpressions.values.Элемент массива
-
-
-
объектspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaceSelector.matchLabels
-
-
массив строкspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.namespaces.Элемент массива
-
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.virtualMachineAndPodAffinityTerm.topologyKey
Обязательный параметр
-
-
целочисленныйspec.affinity.virtualMachineAndPodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
Допустимые значения:
1 <= X <= 100
-
-
массив объектовspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
-
объектspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
-
массив объектовspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
-
массив строкspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values.Элемент массива
-
-
-
объектspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
-
-
массив строкspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys.Элемент массива
-
-
массив строкspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys.Элемент массива
-
-
объектspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
-
массив объектовspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
-
массив строкspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values.Элемент массива
-
-
-
объектspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
-
-
массив строкspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces.Элемент массива
-
-
строкаspec.affinity.virtualMachineAndPodAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
-
-
-
массив объектовspec.blockDeviceRefs
Обязательный параметр
Список блочных устройств, которые могут быть смонтированы в ВМ.
Порядок загрузки определяется порядком в списке.
-
строкаspec.blockDeviceRefs.kind
Поддерживаемые типы устройств:
ClusterVirtualImage— использовать ClusterVirtualImage в качестве диска. Данный тип всегда монтируется в режиме для чтения (ReadOnly). ISO-образ будет смонтирован как устройство CD-ROM;VirtualImage— использовать VirtualImage в качестве диска. Данный тип всегда монтируется в режиме для чтения (ReadOnly). ISO-образ будет смонтирован как устройство CD-ROM;VirtualDisk— использовать VirtualDisk в качестве диска. Данный тип всегда монтируется в режиме для чтения и записи (ReadWrite).
Допустимые значения:
ClusterVirtualImage,VirtualImage,VirtualDisk -
строкаspec.blockDeviceRefs.nameИмя ресурса заданного типа.
Минимальная длина:
1
-
-
строкаspec.bootloader
Загрузчик для ВМ:
BIOS— использовать BIOS;EFI— использовать Unified Extensible Firmware (EFI/UEFI);EFIWithSecureBoot— использовать UEFI/EFI с поддержкой функции Secure Boot.
По умолчанию:
BIOSДопустимые значения:
BIOS,EFI,EFIWithSecureBoot -
объектspec.cpu
Обязательный параметр
Блок определяет настройки CPU для виртуальной машины.-
строкаspec.cpu.coreFractionГарантированная доля времени CPU, выделяемая ВМ. Указывается в процентах. Допустимый диапазон значений определяется параметром
sizePolicyв используемом VirtualMachineClass. ЕслиsizePolicyне задан, используйте значения в диапазоне1–100%. Если значение параметра не указано, применяется значение по умолчанию изsizePolicyиспользуемого VirtualMachineClass. Если значение по умолчанию в классе не задано, применяется100%.Шаблон:
^(100|[1-9][0-9]?|[1-9])%$ -
целочисленныйspec.cpu.cores
Обязательный параметр
Количество ядер.Допустимые значения:
1 <= X
-
-
объектspec.disruptions
Описание политики применения изменений, требующих перезагрузки ВМ.
Для применения изменений в некоторых параметрах конфигурации ВМ потребуется перезагрузка. Данная политика позволяет задать поведение, определяющее как ВМ будет реагировать на такие изменения.
По умолчанию:
{ "restartApprovalMode": "Manual" }-
строкаspec.disruptions.restartApprovalMode
Режим одобрения для изменений, требующих перезагрузки ВМ:
Manual— изменения не будут применены до тех пор, пока пользователь самостоятельно не осуществит перезагрузку ВМ;Automatic— ВМ будет перезагружена сразу после сохранения параметров, требующих перезагрузки.
Допустимые значения:
Manual,Automatic
-
-
булевыйspec.enableParavirtualization
Использовать шину
virtioдля подключения виртуальных устройств ВМ. Чтобы отключитьvirtioдля ВМ, установите значениеFalse.Внимание: Для использования режима паравиртуализации некоторые ОС требуют установки соответствующих драйверов.
По умолчанию:
true -
строкаspec.liveMigrationPolicy
Политика для процесса живой миграции:
AlwaysSafe— использовать безопасный вариант для автоматических миграций и для ручного запуска. Не включать замедление CPU.PreferSafe— использовать безопасный вариант для автоматических миграций. Замедление CPU можно включить вручную с помощью поляforce=trueв VMOP.AlwaysForced— включать замедление CPU для автоматических миграций и для ручного запуска. Нельзя отключить замедление CPU.PreferForced— включать замедление CPU для автоматических миграций. Замедление CPU можно выключить вручную с помощью поляforce=falseв VMOP.
По умолчанию:
PreferSafeДопустимые значения:
AlwaysSafe,PreferSafe,AlwaysForced,PreferForced -
объектspec.memory
Обязательный параметр
Блок настроек оперативной памяти для виртуальной машины.-
строкаspec.memory.size
Обязательный параметр
Объём оперативной памяти.Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-
-
массив объектовspec.networks
Список конфигураций сетевых интерфейсов. Если список не задан, ВМ использует только основную сеть кластера (
Main).Модуль
sdnтребуется, если в.spec.networksуказаны дополнительные сети (NetworkилиClusterNetwork). Если указана только основная сеть (Main), модульsdnне требуется.-
целочисленныйspec.networks.idID сетевого интерфейса.
-
строкаspec.networks.nameИмя сетевого интерфейса.
Минимальная длина:
1 -
строкаspec.networks.type
Тип сетевого интерфейса.
Возможные типы:
Main— основной сетевой интерфейс, который всегда присутствует (сеть по умолчанию);Network— подсеть на уровне пространства имен;ClusterNetwork— подсеть на уровне кластера.
Допустимые значения:
Main,Network,ClusterNetwork -
строкаspec.networks.virtualMachineMACAddressNameИмя ресурса
VirtualMachineMACAddress, связанного с сетевым интерфейсом.Минимальная длина:
1
-
-
строкаspec.osType
Параметр позволяет выбрать тип используемой ОС, для которой будет создана ВМ с оптимальным набором необходимых виртуальных устройств и параметров.
Windows— для ОС семейства Microsoft Windows;Generic— для других типов ОС.
По умолчанию:
GenericДопустимые значения:
Windows,Generic -
строкаspec.priorityClassNameПо аналогии с параметром подов
spec.priorityClassNameв Kubernetes.Минимальная длина:
1 -
объектspec.provisioningБлок описания сценария начальной инициализации ВМ.
-
объектspec.provisioning.sysprepRef
Ссылка на существующий ресурс со сценарием автоматизации Windows.
Структура ресурса для типа
SysprepRef:.data.autounattend.xml;.data.unattend.xml.
-
строкаspec.provisioning.sysprepRef.kind
Обязательный параметр
Тип ресурса. Используйте секрет с типомprovisioning.virtualization.deckhouse.io/sysprep.По умолчанию:
SecretДопустимые значения:
Secret -
строкаspec.provisioning.sysprepRef.name
Обязательный параметр
Имя ресурса со сценарием автоматизации.Минимальная длина:
1
-
строкаspec.provisioning.type
Обязательный параметр
Поддерживаемые параметры для использования сценария инициализации:
UserData— использовать сценарийcloud-initв секции.spec.provisioning.UserData;UserDataRef— использовать сценарийcloud-init, который находится в другом ресурсе;SysprepRef— использовать сценарий автоматизации установки Windows, который находится в другом ресурсе.
Допустимые значения:
UserData,UserDataRef,SysprepRef -
строкаspec.provisioning.userData
Текст сценария
cloud-init.Дополнительная информация о
cloud-initи примеры конфигурации. -
объектspec.provisioning.userDataRef
Ссылка на существующий ресурс со сценарием
cloud-init.Структура ресурса для типа
userDataRef:.data.userData.
-
строкаspec.provisioning.userDataRef.kind
Обязательный параметр
Тип ресурса.По умолчанию:
SecretДопустимые значения:
Secret -
строкаspec.provisioning.userDataRef.name
Обязательный параметр
Имя ресурса со сценариемcloud-init.Минимальная длина:
1
-
-
строкаspec.runPolicy
Параметр определяет политику запуска ВМ:
AlwaysOn— после создания ВМ всегда находится в работающем состоянии, даже в случае отключения средствами ОС;AlwaysOff— после создания ВМ всегда находится в выключенном состоянии;Manual— после создания ВМ выключается. Включение и выключение ВМ контролируется через API-сервисы или средства ОС;AlwaysOnUnlessStoppedManually— после создания ВМ всегда находится в работающем состоянии. ВМ можно выключить средствами ОС или воспользоваться командой для утилиты d8:d8 v stop <vm_name>.
По умолчанию:
AlwaysOnUnlessStoppedManuallyДопустимые значения:
AlwaysOn,AlwaysOff,Manual,AlwaysOnUnlessStoppedManually -
целочисленныйspec.terminationGracePeriodSecondsПериод ожидания после подачи сигнала о прекращении работы ВМ (
SIGTERM), по истечении которого работа ВМ принудительно завершается.По умолчанию:
60 -
-
строкаspec.tolerations.effect
-
строкаspec.tolerations.key
-
строкаspec.tolerations.operator
-
целочисленныйspec.tolerations.tolerationSeconds
-
строкаspec.tolerations.value
-
-
массив объектовspec.topologySpreadConstraintsПо аналогии с параметром подов
spec.topologySpreadConstraintsв Kubernetes.-
объектspec.topologySpreadConstraints.labelSelector
-
массив объектовspec.topologySpreadConstraints.labelSelector.matchExpressions
-
строкаspec.topologySpreadConstraints.labelSelector.matchExpressions.key
-
строкаspec.topologySpreadConstraints.labelSelector.matchExpressions.operator
-
массив строкspec.topologySpreadConstraints.labelSelector.matchExpressions.values
-
строкаspec.topologySpreadConstraints.labelSelector.matchExpressions.values.Элемент массива
-
-
-
объектspec.topologySpreadConstraints.labelSelector.matchLabels
-
-
целочисленныйspec.topologySpreadConstraints.maxSkew
-
строкаspec.topologySpreadConstraints.topologyKey
-
строкаspec.topologySpreadConstraints.whenUnsatisfiable
-
-
массив объектовspec.usbDevicesСписок USB-устройств для подключения к виртуальной машине. Устройства указываются по имени ресурса
USBDeviceв том же пространстве имен.-
строкаspec.usbDevices.nameИмя ресурса
USBDeviceв том же пространстве имен.Минимальная длина:
1
-
-
строкаspec.virtualMachineClassName
Обязательный параметр
Имя ресурса VirtualMachineClass, который описывает требования к виртуальному CPU и памяти, а также политику размещения ресурсов.Минимальная длина:
1 -
строкаspec.virtualMachineIPAddressName
Имя для связанного ресурса virtualMachineIPAddress.
Указывается при необходимости использования ранее созданного IP-адреса ВМ.
Если не указано явно, по умолчанию для ВМ создаётся ресурс virtualMachineIPAddress с именем, аналогичным ресурсу ВМ (
.metadata.name).Минимальная длина:
1
-
-
объектstatus
-
массив объектовstatus.blockDeviceRefsСписок блочных устройств, подключенных к ВМ.
-
булевыйstatus.blockDeviceRefs.attachedБлочное устройство подключено к виртуальной машине.
-
булевыйstatus.blockDeviceRefs.hotpluggedБлочное устройство подключено к виртуальной машине «на лету».
-
строкаstatus.blockDeviceRefs.kindТип блочного устройства.
Допустимые значения:
ClusterVirtualImage,VirtualImage,VirtualDisk -
строкаstatus.blockDeviceRefs.nameИмя существующего ресурса.
-
строкаstatus.blockDeviceRefs.sizeРазмер подключённого блочного устройства.
-
строкаstatus.blockDeviceRefs.targetНазвание подключённого блочного устройства.
Пример:
target: sda -
строкаstatus.blockDeviceRefs.virtualMachineBlockDeviceAttachmentNameИмя ресурса VirtualMachineBlockDeviceAttachment, который описывает подключение диска к виртуальной машине «на лету».
-
-
массив объектовstatus.conditionsСостояние во время работы виртуальной машины.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
объектstatus.guestOSInfo
Информация о гостевой ОС, полученная от агента (QEMU Guest Agent). Агент должен быть предварительно установлен.
Подробнее об агенте: https://www.qemu.org/docs/master/interop/qemu-ga.html.
-
строкаstatus.ipAddressIP-адрес ВМ.
-
объектstatus.migrationStateИнформация о миграции виртуальной машины.
-
строкаstatus.migrationState.endTimestampВремя окончания миграции.
-
строкаstatus.migrationState.resultРезультат миграции:
SucceededилиFailed.Допустимые значения:
‘’,Succeeded,Failed -
объектstatus.migrationState.source
-
строкаstatus.migrationState.source.nodeИмя узла, на котором в данный момент запущена ВМ.
-
строкаstatus.migrationState.source.podИмя пода, на котором в данный момент запущена виртуальная машина.
-
-
строкаstatus.migrationState.startTimestampВремя начала миграции.
-
объектstatus.migrationState.target
-
строкаstatus.migrationState.target.nodeИмя узла, на который в данный момент выполняется миграция виртуальной машины.
-
строкаstatus.migrationState.target.podИмя модуля, в который в данный момент выполняется миграция виртуальной машины.
-
-
-
массив объектовstatus.networksСписок сетевых интерфейсов, подключенных к ВМ.
-
целочисленныйstatus.networks.idID сетевого интерфейса.
-
строкаstatus.networks.macAddressMAC-адрес сетевого интерфейса.
-
строкаstatus.networks.nameИмя сетевого интерфейса.
-
строкаstatus.networks.typeТип сетевого интерфейса.
-
строкаstatus.networks.virtualMachineMACAddressNameИмя ресурса
VirtualMachineMACAddressсвязанного с сетевым интерфейсом.
-
-
строкаstatus.nodeNameИмя узла, на котором в данный момент запущена ВМ.
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Текущее состояние виртуальной машины:
Scheduling— ВМ запланирована для размещения на узлах кластера;Pending— осуществляется процесс запуска ВМ;Running— ВМ запущена;Degraded— в процессе запуска или работы ВМ произошла ошибка;Terminating— в настоящий момент ВМ завершает свою работу;Stopped— ВМ остановлена.
Допустимые значения:
Pending,Running,Degraded,Terminating,Stopped,Stopping,Starting,Migrating,Pause -
объектstatus.resourcesСтатистика использования ресурсов.
-
объектstatus.resources.cpuСтатистика использования ресурсов CPU.
-
строкаstatus.resources.cpu.coreFractionТекущее значение
coreFraction. -
целочисленныйstatus.resources.cpu.cores
Обязательный параметр
Текущее количество ядер виртуальной машины. -
строка или числоstatus.resources.cpu.requestedCoresКоличество ядер CPU, запрошенных виртуальной машиной.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
строка или числоstatus.resources.cpu.runtimeOverheadНакладные расходы на CPU во время выполнения.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
объектstatus.resources.cpu.topologyИнформация о текущей топологии CPU.
-
целочисленныйstatus.resources.cpu.topology.coresPerSocket
Обязательный параметр
Количество ядер CPU на один сокет виртуальной машины. -
целочисленныйstatus.resources.cpu.topology.sockets
Обязательный параметр
Текущее количество сокетов виртуальной машины.
-
-
-
объектstatus.resources.memoryСтатистика использования ресурсов памяти.
-
строка или числоstatus.resources.memory.runtimeOverheadНакладные расходы на память во время выполнения.
Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
строка или числоstatus.resources.memory.size
Обязательный параметр
Текущий размер памяти виртуальной машины.Шаблон:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
-
-
-
массив объектовstatus.restartAwaitingChangesСписок изменений в конфигурации, требующих перезапуска ВМ.
-
объектstatus.statsСтатистика по виртуальной машине.
-
объектstatus.stats.launchTimeDurationИнформация о запуске.
-
строкаstatus.stats.launchTimeDuration.guestOSAgentStartingВремя ожидания запуска guestOsAgent.
running->runningс guestOSAgent." -
строкаstatus.stats.launchTimeDuration.virtualMachineStartingВремя ожидания запуска виртуальной машины.
starting->running. -
строкаstatus.stats.launchTimeDuration.waitingForDependenciesВремя ожидания зависимых ресурсов.
pending->starting.
-
-
массив объектовstatus.stats.phasesTransitionsИстория по фазам.
-
строкаstatus.stats.phasesTransitions.phaseФаза виртуальной машины.
Допустимые значения:
Pending,Running,Degraded,Terminating,Stopped,Stopping,Starting,Migrating,Pause -
строкаstatus.stats.phasesTransitions.timestampВремя перехода в данную фазу.
-
-
-
массив объектовstatus.usbDevicesСписок USB-устройств, подключенных к виртуальной машине.
-
объектstatus.usbDevices.addressUSB-адрес внутри виртуальной машины.
-
целочисленныйstatus.usbDevices.address.busНомер USB-шины (всегда
0для основного USB-контроллера). -
целочисленныйstatus.usbDevices.address.portНомер USB-порта на выбранной шине.
-
-
булевыйstatus.usbDevices.attachedUSB-устройство подключено к виртуальной машине.
-
булевыйstatus.usbDevices.hotpluggedUSB-устройство подключено через горячее подключение.
-
строкаstatus.usbDevices.nameИмя ресурса
USBDevice. -
булевыйstatus.usbDevices.readyUSB-устройство готово к использованию.
-
-
объектstatus.versionsВерсии гипервизора.
-
строкаstatus.versions.libvirtВерсия libvirt.
-
строкаstatus.versions.qemuВерсия qemu.
-
-
строкаstatus.virtualMachineIPAddressNameИмя virtualMachineIPAddressName, содержащее IP-адрес виртуальной машины.
-
массив объектовstatus.virtualMachinePodsСписок подов виртуальной машины.
-
булевыйstatus.virtualMachinePods.activeОтметка активного пода.
-
строкаstatus.virtualMachinePods.nameИмя пода.
-
-
VirtualMachineSnapshotOperation
Scope: Namespaced
Version: v1alpha2
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
объектspec.createVirtualMachineОпределяет параметры операции создания виртуальной машины из снимка.
-
объектspec.createVirtualMachine.customizationОпределяет параметры кастомизации для создания виртуальной машины.
-
строкаspec.createVirtualMachine.customization.namePrefixДобавляет префикс к именам ресурсов при создании. Применяется к ресурсам VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment и Secret.
-
строкаspec.createVirtualMachine.customization.nameSuffixДобавляет суффикс к именам ресурсов при создании. Применяется к ресурсам VirtualMachine, VirtualDisk, VirtualMachineBlockDeviceAttachment и Secret.
-
-
строкаspec.createVirtualMachine.mode
Обязательный параметр
Режим клонирования:
DryRun— запуск без выполнения создания. Конфликты и несоответствия фиксируются в статусе операции.Strict— строгий режим клонирования «как в исходной ВМ». Отсутствие внешних зависимостей может привести к тому, что клонированная виртуальная машина после создания будет находиться в состоянииPending;BestEffort— режим клонирования с удалением отсутствующих внешних зависимостей (ClusterVirtualImage, VirtualImage) из спецификации виртуальной машины.
Допустимые значения:
DryRun,Strict,BestEffort -
массив объектовspec.createVirtualMachine.nameReplacementОпределяет правила переименования ресурсов при создании виртуальной машины.
-
объектspec.createVirtualMachine.nameReplacement.fromСелектор для выбора ресурсов для переименования.
-
строкаspec.createVirtualMachine.nameReplacement.from.kindТип ресурса для переименования.
Минимальная длина:
1 -
строкаspec.createVirtualMachine.nameReplacement.from.name
Обязательный параметр
Текущее имя ресурса для переименования.Минимальная длина:
1
-
-
строкаspec.createVirtualMachine.nameReplacement.toНовое имя ресурса.
Минимальная длина:
1
-
-
-
строкаspec.type
Обязательный параметр
Тип операции, выполняемой над снимком виртуальной машины:
CreateVirtualMachine— создать виртуальную машину из снимка.
Допустимые значения:
CreateVirtualMachine -
строкаspec.virtualMachineSnapshotName
Обязательный параметр
Имя снимка виртуальной машины, для которого выполняется операция.Минимальная длина:
1
-
-
объектstatus
-
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия.
Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Обязательный параметр
Представляет текущее состояние ресурса:
Pending— операция поставлена в очередь на выполнение;InProgress— операция в процессе выполнения;Completed— операция прошла успешно;Failed— операция завершилась неудачно. За подробностями обратитесь к полюconditionsи событиям;Terminating— операция удаляется.
Допустимые значения:
Pending,InProgress,Completed,Failed,Terminating -
массив объектовstatus.resourcesСодержит список ресурсов, затронутых операцией создания из снимка.
-
строкаstatus.resources.apiVersionAPI версия ресурса.
-
строкаstatus.resources.kindТип ресурса.
-
строкаstatus.resources.messageСообщение о ресурсе.
-
строкаstatus.resources.nameИмя ресурса.
-
строкаstatus.resources.statusСтатус ресурса.
Допустимые значения:
InProgress,Completed,Failed
-
-
VirtualMachineSnapshot
Scope: Namespaced
Version: v1alpha2
-
строкаapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
строкаkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
объектmetadata
-
объектspec
-
строкаspec.keepIPAddress
Обязательный параметр
Сохранить IP-адрес виртуальной машины или нет:
Always- при создании снимка IP-адрес виртуальной машины будет сконвертирован изAutoвStaticи сохранён;Never- при создании снимка IP-адрес виртуальной машины не будет сконвертирован.
По умолчанию:
AlwaysДопустимые значения:
Always,Never -
булевыйspec.requiredConsistency
Обязательный параметр
Создавать снимок виртуальной машины только в том случае, если возможно заморозить её через агента.
Если установлено значение
true, снимок виртуальной машины будет создан только в следующих случаях:- виртуальная машина выключена;
- виртуальная машина с агентом, операция заморозки прошла успешно.
По умолчанию:
true -
строкаspec.virtualMachineName
Обязательный параметр
Имя виртуальной машины для создания снимка.Минимальная длина:
1
-
-
объектstatus
-
массив объектовstatus.conditionsПоследнее подтверждённое состояние данного ресурса.
-
строкаstatus.conditions.lastTransitionTimeВремя перехода условия из одного состояния в другое.
-
строкаstatus.conditions.messageУдобочитаемое сообщение с подробной информацией о последнем переходе.
Максимальная длина:
32768 -
целочисленныйstatus.conditions.observedGeneration
.metadata.generation, на основе которого было установлено условие. Например, если.metadata.generationв настоящее время имеет значение12, а.status.conditions[x].observedgenerationимеет значение9, то условие устарело.Допустимые значения:
0 <= X -
строкаstatus.conditions.reasonКраткая причина последнего перехода состояния.
Длина:
1..1024Шаблон:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
строкаstatus.conditions.statusСтатус условия. Возможные значения:
True,False,Unknown.Допустимые значения:
True,False,Unknown -
строкаstatus.conditions.typeТип условия.
Максимальная длина:
316Шаблон:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
булевыйstatus.consistentСнимок виртуальной машины консистентен.
-
целочисленныйstatus.observedGenerationПоколение ресурса, которое в последний раз обрабатывалось контроллером.
-
строкаstatus.phase
Обязательный параметр
Текущее состояние ресурса VirtualMachineSnapshot:
Pending— ресурс был создан и находится в очереди ожидания;InProgress— идёт процесс создания снимка виртуальной машины;Ready— создание снимка успешно завершено, и он доступен для использования;Failed— во время создания снимка виртуальной машины произошла ошибка;Terminating— ресурс находится в процессе удаления.
Допустимые значения:
Pending,InProgress,Ready,Failed,Terminating -
массив объектовstatus.resourcesСписок ресурсов снимка.
-
строкаstatus.resources.apiVersionAPI version of the resource.
-
строкаstatus.resources.kindKind of the resource.
-
строкаstatus.resources.nameName of the resource.
-
-
массив строкstatus.virtualDiskSnapshotNamesИмена созданных снимков виртуальных дисков.
-
строкаstatus.virtualMachineSnapshotSecretNameИмя созданного секрета с информацией о снимке виртуальной машины.
-