432 lines
25 KiB
YAML
432 lines
25 KiB
YAML
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
kubevirt.io/generation: "1"
|
|
kubevirt.io/install-strategy-identifier: c51bc47ef3eccba54f764552d24801eb8388b36e
|
|
kubevirt.io/install-strategy-registry: quay.io/kubevirt
|
|
kubevirt.io/install-strategy-version: v1.0.1
|
|
generation: 1
|
|
labels:
|
|
app.kubernetes.io/component: kubevirt
|
|
app.kubernetes.io/managed-by: virt-operator
|
|
kubevirt.io: ""
|
|
name: virtualmachineinstancemigrations.kubevirt.io
|
|
spec:
|
|
conversion:
|
|
strategy: None
|
|
group: kubevirt.io
|
|
names:
|
|
categories:
|
|
- all
|
|
kind: VirtualMachineInstanceMigration
|
|
listKind: VirtualMachineInstanceMigrationList
|
|
plural: virtualmachineinstancemigrations
|
|
shortNames:
|
|
- vmim
|
|
- vmims
|
|
singular: virtualmachineinstancemigration
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- description: The current phase of VM instance migration
|
|
jsonPath: .status.phase
|
|
name: Phase
|
|
type: string
|
|
- description: The name of the VMI to perform the migration on
|
|
jsonPath: .spec.vmiName
|
|
name: VMI
|
|
type: string
|
|
name: v1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: VirtualMachineInstanceMigration represents the object tracking a VMI's migration to another host in the cluster
|
|
properties:
|
|
apiVersion:
|
|
description: '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'
|
|
type: string
|
|
kind:
|
|
description: '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'
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
spec:
|
|
properties:
|
|
vmiName:
|
|
description: The name of the VMI to perform the migration on. VMI must exist in the migration objects namespace
|
|
type: string
|
|
type: object
|
|
status:
|
|
description: VirtualMachineInstanceMigration reprents information pertaining to a VMI's migration.
|
|
properties:
|
|
conditions:
|
|
items:
|
|
properties:
|
|
lastProbeTime:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
lastTransitionTime:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
message:
|
|
type: string
|
|
reason:
|
|
type: string
|
|
status:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
migrationState:
|
|
description: Represents the status of a live migration
|
|
properties:
|
|
abortRequested:
|
|
description: Indicates that the migration has been requested to abort
|
|
type: boolean
|
|
abortStatus:
|
|
description: Indicates the final status of the live migration abortion
|
|
type: string
|
|
completed:
|
|
description: Indicates the migration completed
|
|
type: boolean
|
|
endTimestamp:
|
|
description: The time the migration action ended
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
failed:
|
|
description: Indicates that the migration failed
|
|
type: boolean
|
|
migrationConfiguration:
|
|
description: Migration configurations to apply
|
|
properties:
|
|
allowAutoConverge:
|
|
description: AllowAutoConverge allows the platform to compromise performance/availability of VMIs to guarantee successful VMI live migrations. Defaults to false
|
|
type: boolean
|
|
allowPostCopy:
|
|
description: 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
|
|
type: boolean
|
|
bandwidthPerMigration:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: 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)
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
completionTimeoutPerGiB:
|
|
description: CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. If a live-migration takes longer to migrate than this value multiplied by the size of the VMI, the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800
|
|
format: int64
|
|
type: integer
|
|
disableTLS:
|
|
description: 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
|
|
type: boolean
|
|
matchSELinuxLevelOnMigration:
|
|
description: 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.
|
|
type: boolean
|
|
network:
|
|
description: Network is the name of the CNI network to use for live migrations. By default, migrations go through the pod network.
|
|
type: string
|
|
nodeDrainTaintKey:
|
|
description: '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'
|
|
type: string
|
|
parallelMigrationsPerCluster:
|
|
description: ParallelMigrationsPerCluster is the total number of concurrent live migrations allowed cluster-wide. Defaults to 5
|
|
format: int32
|
|
type: integer
|
|
parallelOutboundMigrationsPerNode:
|
|
description: ParallelOutboundMigrationsPerNode is the maximum number of concurrent outgoing live migrations allowed per node. Defaults to 2
|
|
format: int32
|
|
type: integer
|
|
progressTimeout:
|
|
description: 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
|
|
format: int64
|
|
type: integer
|
|
unsafeMigrationOverride:
|
|
description: UnsafeMigrationOverride allows live migrations to occur even if the compatibility check indicates the migration will be unsafe to the guest. Defaults to false
|
|
type: boolean
|
|
type: object
|
|
migrationPolicyName:
|
|
description: Name of the migration policy. If string is empty, no policy is matched
|
|
type: string
|
|
migrationUid:
|
|
description: The VirtualMachineInstanceMigration object associated with this migration
|
|
type: string
|
|
mode:
|
|
description: Lets us know if the vmi is currently running pre or post copy migration
|
|
type: string
|
|
sourceNode:
|
|
description: The source node that the VMI originated on
|
|
type: string
|
|
startTimestamp:
|
|
description: The time the migration action began
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
targetAttachmentPodUID:
|
|
description: The UID of the target attachment pod for hotplug volumes
|
|
type: string
|
|
targetCPUSet:
|
|
description: If the VMI requires dedicated CPUs, this field will hold the dedicated CPU set on the target node
|
|
items:
|
|
type: integer
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
targetDirectMigrationNodePorts:
|
|
additionalProperties:
|
|
type: integer
|
|
description: The list of ports opened for live migration on the destination node
|
|
type: object
|
|
targetNode:
|
|
description: The target node that the VMI is moving to
|
|
type: string
|
|
targetNodeAddress:
|
|
description: The address of the target node to use for the migration
|
|
type: string
|
|
targetNodeDomainDetected:
|
|
description: The Target Node has seen the Domain Start Event
|
|
type: boolean
|
|
targetNodeDomainReadyTimestamp:
|
|
description: The timestamp at which the target node detects the domain is active
|
|
format: date-time
|
|
type: string
|
|
targetNodeTopology:
|
|
description: If the VMI requires dedicated CPUs, this field will hold the numa topology on the target node
|
|
type: string
|
|
targetPod:
|
|
description: The target pod that the VMI is moving to
|
|
type: string
|
|
type: object
|
|
phase:
|
|
description: VirtualMachineInstanceMigrationPhase is a label for the condition of a VirtualMachineInstanceMigration at the current time.
|
|
type: string
|
|
phaseTransitionTimestamps:
|
|
description: PhaseTransitionTimestamp is the timestamp of when the last phase change occurred
|
|
items:
|
|
description: VirtualMachineInstanceMigrationPhaseTransitionTimestamp gives a timestamp in relation to when a phase is set on a vmi
|
|
properties:
|
|
phase:
|
|
description: Phase is the status of the VirtualMachineInstanceMigrationPhase in kubernetes world. It is not the VirtualMachineInstanceMigrationPhase status, but partially correlates to it.
|
|
type: string
|
|
phaseTransitionTimestamp:
|
|
description: PhaseTransitionTimestamp is the timestamp of when the phase change occurred
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|
|
- additionalPrinterColumns:
|
|
- description: The current phase of VM instance migration
|
|
jsonPath: .status.phase
|
|
name: Phase
|
|
type: string
|
|
- description: The name of the VMI to perform the migration on
|
|
jsonPath: .spec.vmiName
|
|
name: VMI
|
|
type: string
|
|
deprecated: true
|
|
deprecationWarning: kubevirt.io/v1alpha3 is now deprecated and will be removed in a future release.
|
|
name: v1alpha3
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: VirtualMachineInstanceMigration represents the object tracking a VMI's migration to another host in the cluster
|
|
properties:
|
|
apiVersion:
|
|
description: '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'
|
|
type: string
|
|
kind:
|
|
description: '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'
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
spec:
|
|
properties:
|
|
vmiName:
|
|
description: The name of the VMI to perform the migration on. VMI must exist in the migration objects namespace
|
|
type: string
|
|
type: object
|
|
status:
|
|
description: VirtualMachineInstanceMigration reprents information pertaining to a VMI's migration.
|
|
properties:
|
|
conditions:
|
|
items:
|
|
properties:
|
|
lastProbeTime:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
lastTransitionTime:
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
message:
|
|
type: string
|
|
reason:
|
|
type: string
|
|
status:
|
|
type: string
|
|
type:
|
|
type: string
|
|
required:
|
|
- status
|
|
- type
|
|
type: object
|
|
type: array
|
|
migrationState:
|
|
description: Represents the status of a live migration
|
|
properties:
|
|
abortRequested:
|
|
description: Indicates that the migration has been requested to abort
|
|
type: boolean
|
|
abortStatus:
|
|
description: Indicates the final status of the live migration abortion
|
|
type: string
|
|
completed:
|
|
description: Indicates the migration completed
|
|
type: boolean
|
|
endTimestamp:
|
|
description: The time the migration action ended
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
failed:
|
|
description: Indicates that the migration failed
|
|
type: boolean
|
|
migrationConfiguration:
|
|
description: Migration configurations to apply
|
|
properties:
|
|
allowAutoConverge:
|
|
description: AllowAutoConverge allows the platform to compromise performance/availability of VMIs to guarantee successful VMI live migrations. Defaults to false
|
|
type: boolean
|
|
allowPostCopy:
|
|
description: 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
|
|
type: boolean
|
|
bandwidthPerMigration:
|
|
anyOf:
|
|
- type: integer
|
|
- type: string
|
|
description: 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)
|
|
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
|
|
x-kubernetes-int-or-string: true
|
|
completionTimeoutPerGiB:
|
|
description: CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. If a live-migration takes longer to migrate than this value multiplied by the size of the VMI, the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800
|
|
format: int64
|
|
type: integer
|
|
disableTLS:
|
|
description: 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
|
|
type: boolean
|
|
matchSELinuxLevelOnMigration:
|
|
description: 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.
|
|
type: boolean
|
|
network:
|
|
description: Network is the name of the CNI network to use for live migrations. By default, migrations go through the pod network.
|
|
type: string
|
|
nodeDrainTaintKey:
|
|
description: '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'
|
|
type: string
|
|
parallelMigrationsPerCluster:
|
|
description: ParallelMigrationsPerCluster is the total number of concurrent live migrations allowed cluster-wide. Defaults to 5
|
|
format: int32
|
|
type: integer
|
|
parallelOutboundMigrationsPerNode:
|
|
description: ParallelOutboundMigrationsPerNode is the maximum number of concurrent outgoing live migrations allowed per node. Defaults to 2
|
|
format: int32
|
|
type: integer
|
|
progressTimeout:
|
|
description: 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
|
|
format: int64
|
|
type: integer
|
|
unsafeMigrationOverride:
|
|
description: UnsafeMigrationOverride allows live migrations to occur even if the compatibility check indicates the migration will be unsafe to the guest. Defaults to false
|
|
type: boolean
|
|
type: object
|
|
migrationPolicyName:
|
|
description: Name of the migration policy. If string is empty, no policy is matched
|
|
type: string
|
|
migrationUid:
|
|
description: The VirtualMachineInstanceMigration object associated with this migration
|
|
type: string
|
|
mode:
|
|
description: Lets us know if the vmi is currently running pre or post copy migration
|
|
type: string
|
|
sourceNode:
|
|
description: The source node that the VMI originated on
|
|
type: string
|
|
startTimestamp:
|
|
description: The time the migration action began
|
|
format: date-time
|
|
nullable: true
|
|
type: string
|
|
targetAttachmentPodUID:
|
|
description: The UID of the target attachment pod for hotplug volumes
|
|
type: string
|
|
targetCPUSet:
|
|
description: If the VMI requires dedicated CPUs, this field will hold the dedicated CPU set on the target node
|
|
items:
|
|
type: integer
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
targetDirectMigrationNodePorts:
|
|
additionalProperties:
|
|
type: integer
|
|
description: The list of ports opened for live migration on the destination node
|
|
type: object
|
|
targetNode:
|
|
description: The target node that the VMI is moving to
|
|
type: string
|
|
targetNodeAddress:
|
|
description: The address of the target node to use for the migration
|
|
type: string
|
|
targetNodeDomainDetected:
|
|
description: The Target Node has seen the Domain Start Event
|
|
type: boolean
|
|
targetNodeDomainReadyTimestamp:
|
|
description: The timestamp at which the target node detects the domain is active
|
|
format: date-time
|
|
type: string
|
|
targetNodeTopology:
|
|
description: If the VMI requires dedicated CPUs, this field will hold the numa topology on the target node
|
|
type: string
|
|
targetPod:
|
|
description: The target pod that the VMI is moving to
|
|
type: string
|
|
type: object
|
|
phase:
|
|
description: VirtualMachineInstanceMigrationPhase is a label for the condition of a VirtualMachineInstanceMigration at the current time.
|
|
type: string
|
|
phaseTransitionTimestamps:
|
|
description: PhaseTransitionTimestamp is the timestamp of when the last phase change occurred
|
|
items:
|
|
description: VirtualMachineInstanceMigrationPhaseTransitionTimestamp gives a timestamp in relation to when a phase is set on a vmi
|
|
properties:
|
|
phase:
|
|
description: Phase is the status of the VirtualMachineInstanceMigrationPhase in kubernetes world. It is not the VirtualMachineInstanceMigrationPhase status, but partially correlates to it.
|
|
type: string
|
|
phaseTransitionTimestamp:
|
|
description: PhaseTransitionTimestamp is the timestamp of when the phase change occurred
|
|
format: date-time
|
|
type: string
|
|
type: object
|
|
type: array
|
|
x-kubernetes-list-type: atomic
|
|
type: object
|
|
required:
|
|
- spec
|
|
type: object
|
|
served: true
|
|
storage: false
|
|
subresources:
|
|
status: {} |