VirtualMachineInstanceMigration [virtualmachineinstancemigrations.kubevirt.io/v1]

Description
VirtualMachineInstanceMigration represents the object tracking a VMI's migration to another host in the cluster
Type
object
Required
spec

Specification

PropertyTypeDescription
apiVersionstring

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kindstring

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadataObjectMeta

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

specobject
statusobject

VirtualMachineInstanceMigration reprents information pertaining to a VMI's migration.

.spec

Type
object
PropertyTypeDescription
addedNodeSelectorobject

AddedNodeSelector is an additional selector that can be used to complement a NodeSelector or NodeAffinity as set on the VM to restrict the set of allowed target nodes for a migration. In case of key collisions, values set on the VM objects are going to be preserved to ensure that addedNodeSelector can only restrict but not bypass constraints already set on the VM object.

prioritystring

Priority of the migration. This can be one of 'system-critical', 'user-triggered', 'system-maintenance'.

receiveobject

If receieve is specified, this VirtualMachineInstanceMigration will be considered the target

sendToobject

If sendTo is specified, this VirtualMachineInstanceMigration will be considered the source

vmiNamestring

The name of the VMI to perform the migration on. VMI must exist in the migration objects namespace

.spec.addedNodeSelector

Description
AddedNodeSelector is an additional selector that can be used to complement a NodeSelector or NodeAffinity as set on the VM to restrict the set of allowed target nodes for a migration. In case of key collisions, values set on the VM objects are going to be preserved to ensure that addedNodeSelector can only restrict but not bypass constraints already set on the VM object.
Type
object

.spec.receive

Description
If receieve is specified, this VirtualMachineInstanceMigration will be considered the target
Type
object
Required
migrationID
PropertyTypeDescription
migrationIDstring

A unique identifier to identify this migration.

.spec.sendTo

Description
If sendTo is specified, this VirtualMachineInstanceMigration will be considered the source
Type
object
Required
connectURLmigrationID
PropertyTypeDescription
connectURLstring

The synchronization controller URL to connect to.

migrationIDstring

A unique identifier to identify this migration.

.status

Description
VirtualMachineInstanceMigration reprents information pertaining to a VMI's migration.
Type
object
PropertyTypeDescription
conditionsarray
migrationStateobject

Represents the status of a live migration

phasestring

VirtualMachineInstanceMigrationPhase is a label for the condition of a VirtualMachineInstanceMigration at the current time.

phaseTransitionTimestampsarray

PhaseTransitionTimestamp is the timestamp of when the last phase change occurred

synchronizationAddressesarray

The synchronization addresses one can use to connect to the synchronization controller, includes the port, if multiple addresses are available, the first one is reported in the synchronizationAddress field.

.status.conditions

Type
array

.status.conditions[]

Type
object
Required
statustype
PropertyTypeDescription
lastProbeTimestring
lastTransitionTimestring
messagestring
reasonstring
statusstring
typestring

.status.migrationState

Description
Represents the status of a live migration
Type
object
PropertyTypeDescription
abortRequestedboolean

Indicates that the migration has been requested to abort

abortStatusstring

Indicates the final status of the live migration abortion

completedboolean

Indicates the migration completed

endTimestampstring

The time the migration action ended

failedboolean

Indicates that the migration failed

failureReasonstring

Contains the reason why the migration failed

migrationConfigurationobject

Migration configurations to apply

migrationNetworkTypestring

The type of migration network, either 'pod' or 'migration'

migrationPolicyNamestring

Name of the migration policy. If string is empty, no policy is matched

migrationUidstring

The VirtualMachineInstanceMigration object associated with this migration

modestring

Lets us know if the vmi is currently running pre or post copy migration

sourceNodestring

The source node that the VMI originated on

sourcePersistentStatePVCNamestring

If the VMI being migrated uses persistent features (backend-storage), its source PVC name is saved here

sourcePodstring
sourceStateobject

SourceState contains migration state managed by the source virt handler

startTimestampstring

The time the migration action began

targetAttachmentPodUIDstring

The UID of the target attachment pod for hotplug volumes

targetCPUSetarray

If the VMI requires dedicated CPUs, this field will hold the dedicated CPU set on the target node

targetDirectMigrationNodePortsobject

The list of ports opened for live migration on the destination node

targetNodestring

The target node that the VMI is moving to

targetNodeAddressstring

The address of the target node to use for the migration

targetNodeDomainDetectedboolean

The Target Node has seen the Domain Start Event

targetNodeDomainReadyTimestampstring

The timestamp at which the target node detects the domain is active

targetNodeTopologystring

If the VMI requires dedicated CPUs, this field will hold the numa topology on the target node

targetPersistentStatePVCNamestring

If the VMI being migrated uses persistent features (backend-storage), its target PVC name is saved here

targetPodstring

The target pod that the VMI is moving to

targetStateobject

TargetState contains migration state managed by the target virt handler

.status.migrationState.migrationConfiguration

Description
Migration configurations to apply
Type
object
PropertyTypeDescription
allowAutoConvergeboolean

AllowAutoConverge allows the platform to compromise performance/availability of VMIs to guarantee successful VMI live migrations. Defaults to false

allowPostCopyboolean

AllowPostCopy enables post-copy live migrations. Such migrations allow even the busiest VMIs to successfully live-migrate. However, events like a network failure can cause a VMI crash. If set to true, migrations will still start in pre-copy, but switch to post-copy when CompletionTimeoutPerGiB triggers. Defaults to false

allowWorkloadDisruptionboolean

AllowWorkloadDisruption indicates that the migration shouldn't be canceled after acceptableCompletionTime is exceeded. Instead, if permitted, migration will be switched to post-copy or the VMI will be paused to allow the migration to complete

bandwidthPerMigration

BandwidthPerMigration limits the amount of network bandwidth live migrations are allowed to use. The value is in quantity per second. Defaults to 0 (no limit)

completionTimeoutPerGiBinteger

CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. If the timeout is reached, the migration will be either paused, switched to post-copy or cancelled depending on other settings. Defaults to 150

disableTLSboolean

When set to true, DisableTLS will disable the additional layer of live migration encryption provided by KubeVirt. This is usually a bad idea. Defaults to false

matchSELinuxLevelOnMigrationboolean

By default, the SELinux level of target virt-launcher pods is forced to the level of the source virt-launcher. When set to true, MatchSELinuxLevelOnMigration lets the CRI auto-assign a random level to the target. That will ensure the target virt-launcher doesn't share categories with another pod on the node. However, migrations will fail when using RWX volumes that don't automatically deal with SELinux levels.

networkstring

Network is the name of the CNI network to use for live migrations. By default, migrations go through the pod network.

nodeDrainTaintKeystring

NodeDrainTaintKey defines the taint key that indicates a node should be drained. Note: this option relies on the deprecated node taint feature. Default: kubevirt.io/drain

parallelMigrationsPerClusterinteger

ParallelMigrationsPerCluster is the total number of concurrent live migrations allowed cluster-wide. Defaults to 5

parallelOutboundMigrationsPerNodeinteger

ParallelOutboundMigrationsPerNode is the maximum number of concurrent outgoing live migrations allowed per node. Defaults to 2

progressTimeoutinteger

ProgressTimeout is the maximum number of seconds a live migration is allowed to make no progress. Hitting this timeout means a migration transferred 0 data for that many seconds. The migration is then considered stuck and therefore cancelled. Defaults to 150

unsafeMigrationOverrideboolean

UnsafeMigrationOverride allows live migrations to occur even if the compatibility check indicates the migration will be unsafe to the guest. Defaults to false

.status.migrationState.sourceState

Description
SourceState contains migration state managed by the source virt handler
Type
object
PropertyTypeDescription
domainNamestring

The name of the domain on the source libvirt domain

domainNamespacestring

Namespace used in the name of the source libvirt domain. Can be used to find and modify paths in the domain

migrationUIDstring

The Source VirtualMachineInstanceMigration object associated with this migration

nodestring

The source node that the VMI originated on

nodeSelectorsobject

Node selectors needed by the target to start the receiving pod.

persistentStatePVCNamestring

If the VMI being migrated uses persistent features (backend-storage), its source PVC name is saved here

podstring

The source pod that the VMI is originated on

selinuxContextstring

SELinuxContext is the actual SELinux context of the pod

syncAddressstring

The ip address/fqdn:port combination to use to synchronize the VMI with the target.

virtualMachineInstanceUIDstring

VirtualMachineInstanceUID is the UID of the target virtual machine instance

.status.migrationState.sourceState.nodeSelectors

Description
Node selectors needed by the target to start the receiving pod.
Type
object

.status.migrationState.targetCPUSet

Description
If the VMI requires dedicated CPUs, this field will hold the dedicated CPU set on the target node
Type
array

.status.migrationState.targetCPUSet[]

Type
integer

.status.migrationState.targetDirectMigrationNodePorts

Description
The list of ports opened for live migration on the destination node
Type
object

.status.migrationState.targetState

Description
TargetState contains migration state managed by the target virt handler
Type
object
PropertyTypeDescription
attachmentPodUIDstring

The UID of the target attachment pod for hotplug volumes

cpuSetarray

If the VMI requires dedicated CPUs, this field will hold the dedicated CPU set on the target node

directMigrationNodePortsobject

The list of ports opened for live migration on the destination node

domainDetectedboolean

The Target Node has seen the Domain Start Event

domainNamestring

The name of the domain on the source libvirt domain

domainNamespacestring

Namespace used in the name of the source libvirt domain. Can be used to find and modify paths in the domain

domainReadyTimestampstring

The timestamp at which the target node detects the domain is active

migrationUIDstring

The Source VirtualMachineInstanceMigration object associated with this migration

nodestring

The source node that the VMI originated on

nodeAddressstring

The address of the target node to use for the migration

nodeTopologystring

If the VMI requires dedicated CPUs, this field will hold the numa topology on the target node

persistentStatePVCNamestring

If the VMI being migrated uses persistent features (backend-storage), its source PVC name is saved here

podstring

The source pod that the VMI is originated on

selinuxContextstring

SELinuxContext is the actual SELinux context of the pod

syncAddressstring

The ip address/fqdn:port combination to use to synchronize the VMI with the target.

virtualMachineInstanceUIDstring

VirtualMachineInstanceUID is the UID of the target virtual machine instance

.status.migrationState.targetState.cpuSet

Description
If the VMI requires dedicated CPUs, this field will hold the dedicated CPU set on the target node
Type
array

.status.migrationState.targetState.cpuSet[]

Type
integer

.status.migrationState.targetState.directMigrationNodePorts

Description
The list of ports opened for live migration on the destination node
Type
object

.status.phaseTransitionTimestamps

Description
PhaseTransitionTimestamp is the timestamp of when the last phase change occurred
Type
array

.status.phaseTransitionTimestamps[]

Description
VirtualMachineInstanceMigrationPhaseTransitionTimestamp gives a timestamp in relation to when a phase is set on a vmi
Type
object
PropertyTypeDescription
phasestring

Phase is the status of the VirtualMachineInstanceMigrationPhase in kubernetes world. It is not the VirtualMachineInstanceMigrationPhase status, but partially correlates to it.

phaseTransitionTimestampstring

PhaseTransitionTimestamp is the timestamp of when the phase change occurred

.status.synchronizationAddresses

Description
The synchronization addresses one can use to connect to the synchronization controller, includes the port, if multiple addresses are available, the first one is reported in the synchronizationAddress field.
Type
array

.status.synchronizationAddresses[]

Type
string

API Endpoints

The following API endpoints are available:

  • /apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstancemigrations
    • DELETE: delete collection of VirtualMachineInstanceMigration
    • GET: list objects of kind VirtualMachineInstanceMigration
    • POST: create a new VirtualMachineInstanceMigration
  • /apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstancemigrations/{name}
    • DELETE: delete the specified VirtualMachineInstanceMigration
    • GET: read the specified VirtualMachineInstanceMigration
    • PATCH: partially update the specified VirtualMachineInstanceMigration
    • PUT: replace the specified VirtualMachineInstanceMigration
  • /apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstancemigrations/{name}/status
    • GET: read status of the specified VirtualMachineInstanceMigration
    • PATCH: partially update status of the specified VirtualMachineInstanceMigration
    • PUT: replace status of the specified VirtualMachineInstanceMigration

/apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstancemigrations

HTTP method
DELETE
Description
delete collection of VirtualMachineInstanceMigration
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
list objects of kind VirtualMachineInstanceMigration
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineInstanceMigrationList schema
401 - UnauthorizedEmpty
HTTP method
POST
Description
create a new VirtualMachineInstanceMigration
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyVirtualMachineInstanceMigration schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineInstanceMigration schema
201 - CreatedVirtualMachineInstanceMigration schema
202 - AcceptedVirtualMachineInstanceMigration schema
401 - UnauthorizedEmpty

/apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstancemigrations/{name}

HTTP method
DELETE
Description
delete the specified VirtualMachineInstanceMigration
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
HTTP responses
HTTP codeResponse body
200 - OKStatus schema
202 - AcceptedStatus schema
401 - UnauthorizedEmpty
HTTP method
GET
Description
read the specified VirtualMachineInstanceMigration
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineInstanceMigration schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update the specified VirtualMachineInstanceMigration
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineInstanceMigration schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace the specified VirtualMachineInstanceMigration
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyVirtualMachineInstanceMigration schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineInstanceMigration schema
201 - CreatedVirtualMachineInstanceMigration schema
401 - UnauthorizedEmpty

/apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstancemigrations/{name}/status

HTTP method
GET
Description
read status of the specified VirtualMachineInstanceMigration
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineInstanceMigration schema
401 - UnauthorizedEmpty
HTTP method
PATCH
Description
partially update status of the specified VirtualMachineInstanceMigration
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineInstanceMigration schema
401 - UnauthorizedEmpty
HTTP method
PUT
Description
replace status of the specified VirtualMachineInstanceMigration
Query parameters
ParameterTypeDescription
dryRunstringWhen present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed
fieldValidationstringfieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.
Body parameters
ParameterTypeDescription
bodyVirtualMachineInstanceMigration schemaapplication/json formatted
HTTP responses
HTTP codeResponse body
200 - OKVirtualMachineInstanceMigration schema
201 - CreatedVirtualMachineInstanceMigration schema
401 - UnauthorizedEmpty