feat: Add KubeVirt custom health checks (#7176)

Signed-off-by: cwilkers <cwilkers@redhat.com>
This commit is contained in:
Chandler Wilkerson
2021-11-04 10:23:48 -05:00
committed by GitHub
parent ff45418948
commit fc13eda8d6
22 changed files with 1164 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
hs = { status="Progressing", message="No status available"}
if obj.status ~= nil then
if obj.status.phase ~= nil then
hs.message = obj.status.phase
if hs.message == "Succeeded" then
hs.status = "Healthy"
return hs
elseif hs.message == "Failed" or hs.message == "Unknown" then
hs.status = "Degraded"
elseif hs.message == "Paused" then
hs.status = "Suspended"
return hs
end
end
if obj.status.conditions ~= nil then
for i, condition in ipairs(obj.status.conditions) do
if condition.type == "Running" and condition.status == "False" and condition.reason == "Error" then
hs.status = "Degraded"
hs.message = condition.message
return hs
end
end
end
end
return hs

View File

@@ -0,0 +1,21 @@
tests:
- healthStatus:
status: Progressing
message: "No status available"
inputPath: testdata/progressing_nostatus.yaml
- healthStatus:
status: Progressing
message: "ImportInProgress"
inputPath: testdata/progressing_importing.yaml
- healthStatus:
status: Healthy
message: "Succeeded"
inputPath: testdata/healthy_succeeded.yaml
- healthStatus:
status: Progressing
message: "ImportScheduled"
inputPath: testdata/progressing_containercreating.yaml
- healthStatus:
status: Degraded
message: "Unable to connect to http data source: expected status code 200, got 404. Status: 404 Not Found"
inputPath: testdata/degraded_badurl.yaml

View File

@@ -0,0 +1,41 @@
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
creationTimestamp: "2021-10-25T22:23:10Z"
generation: 14
name: example-badimport-dv
namespace: default
resourceVersion: "44636962"
uid: 8d55b149-d418-47d6-b60b-48d823142418
spec:
pvc:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
source:
http:
url: https://download.fedoraproject.org/pub/no-such-image.xz
status:
conditions:
- lastHeartbeatTime: "2021-10-25T22:23:15Z"
lastTransitionTime: "2021-10-25T22:23:15Z"
message: PVC example-badimport-dv Bound
reason: Bound
status: "True"
type: Bound
- lastHeartbeatTime: "2021-10-25T22:23:47Z"
lastTransitionTime: "2021-10-25T22:23:10Z"
status: "False"
type: Ready
- lastHeartbeatTime: "2021-10-25T22:23:47Z"
lastTransitionTime: "2021-10-25T22:23:47Z"
message: 'Unable to connect to http data source: expected status code 200, got
404. Status: 404 Not Found'
reason: Error
status: "False"
type: Running
phase: ImportInProgress
progress: N/A
restartCount: 2

View File

@@ -0,0 +1,41 @@
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
annotations:
cdi.kubevirt.io/storage.bind.immediate.requested: "true"
kubevirt.ui/provider: fedora
labels:
app.kubernetes.io/instance: datavolumes
name: fedora
namespace: openshift-virtualization-os-images
spec:
pvc:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
volumeMode: Filesystem
source:
http:
url: https://mirror.arizona.edu/fedora/linux/releases/34/Cloud/x86_64/images/Fedora-Cloud-Base-34-1.2.x86_64.raw.xz
status:
conditions:
- lastHeartbeatTime: "2021-08-30T21:31:52Z"
lastTransitionTime: "2021-08-30T21:31:52Z"
message: PVC fedora Bound
reason: Bound
status: "True"
type: Bound
- lastHeartbeatTime: "2021-08-30T21:34:36Z"
lastTransitionTime: "2021-08-30T21:34:36Z"
status: "True"
type: Ready
- lastHeartbeatTime: "2021-08-30T21:34:36Z"
lastTransitionTime: "2021-08-30T21:34:36Z"
message: Import Complete
reason: Completed
status: "False"
type: Running
phase: Succeeded
progress: 100.0%

View File

@@ -0,0 +1,35 @@
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
creationTimestamp: "2021-10-25T22:23:10Z"
name: example-badimport-dv
namespace: default
spec:
pvc:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
source:
http:
url: https://download.fedoraproject.org/pub/no-such-image.xz
status:
conditions:
- lastHeartbeatTime: "2021-10-25T22:23:15Z"
lastTransitionTime: "2021-10-25T22:23:15Z"
message: PVC example-badimport-dv Bound
reason: Bound
status: "True"
type: Bound
- lastHeartbeatTime: "2021-10-25T22:23:10Z"
lastTransitionTime: "2021-10-25T22:23:10Z"
status: "False"
type: Ready
- lastHeartbeatTime: "2021-10-25T22:23:15Z"
lastTransitionTime: "2021-10-25T22:23:10Z"
reason: ContainerCreating
status: "False"
type: Running
phase: ImportScheduled
progress: N/A

View File

@@ -0,0 +1,42 @@
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
annotations:
cdi.kubevirt.io/storage.bind.immediate.requested: "true"
kubevirt.ui/provider: centos
labels:
app.kubernetes.io/instance: datavolumes
name: centos8
namespace: openshift-virtualization-os-images
spec:
pvc:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
volumeMode: Filesystem
source:
http:
url: https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20210603.0.x86_64.qcow2
status:
conditions:
- lastHeartbeatTime: "2021-09-07T15:24:46Z"
lastTransitionTime: "2021-09-07T15:24:46Z"
message: PVC centos8 Bound
reason: Bound
status: "True"
type: Bound
- lastHeartbeatTime: "2021-09-07T15:25:33Z"
lastTransitionTime: "2021-09-07T15:24:37Z"
reason: TransferRunning
status: "False"
type: Ready
- lastHeartbeatTime: "2021-09-07T15:24:55Z"
lastTransitionTime: "2021-09-07T15:24:55Z"
reason: Pod is running
status: "True"
type: Running
phase: ImportInProgress
progress: 2.00%

View File

@@ -0,0 +1,22 @@
apiVersion: cdi.kubevirt.io/v1beta1
kind: DataVolume
metadata:
annotations:
cdi.kubevirt.io/storage.bind.immediate.requested: "true"
kubevirt.ui/provider: centos
labels:
app.kubernetes.io/instance: datavolumes
name: centos8
namespace: openshift-virtualization-os-images
spec:
pvc:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
volumeMode: Filesystem
source:
http:
url: https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20210603.0.x86_64.qcow2
status: {}

View File

@@ -0,0 +1,29 @@
hs = { status="Progressing", message="No status available"}
if obj.status ~= nil then
if obj.status.conditions ~= nil then
for i, condition in ipairs(obj.status.conditions) do
if condition.type == "Paused" and condition.status == "True" then
hs.status = "Suspended"
hs.message = "Paused"
return hs
end
if condition.type == "Ready" then
if condition.status == "True" then
hs.status="Healthy"
hs.message="Running"
else
if obj.status.created then
hs.message = "Starting"
else
hs.status = "Suspended"
hs.message = "Stopped"
end
end
end
end
end
if obj.status.printableStatus ~= nil then
hs.message = obj.status.printableStatus
end
end
return hs

View File

@@ -0,0 +1,21 @@
tests:
- healthStatus:
status: Progressing
message: "No status available"
inputPath: testdata/progressing_nostatus.yaml
- healthStatus:
status: Healthy
message: "Running"
inputPath: testdata/healthy_ready.yaml
- healthStatus:
status: Suspended
message: "Stopped"
inputPath: testdata/suspended_stopped.yaml
- healthStatus:
status: Progressing
message: "Starting"
inputPath: testdata/progressing_starting.yaml
- healthStatus:
status: Suspended
message: "Paused"
inputPath: testdata/suspended_paused.yaml

View File

@@ -0,0 +1,63 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
annotations:
kubevirt.io/latest-observed-api-version: v1
kubevirt.io/storage-observed-api-version: v1alpha3
name: testvm
namespace: default
resourceVersion: "10971"
selfLink: /apis/kubevirt.io/v1/namespaces/default/virtualmachines/testvm
uid: 8cfec9a9-d736-4c10-8d91-bd3cafb69cb3
spec:
running: true
template:
metadata:
creationTimestamp: null
labels:
kubevirt.io/domain: testvm
kubevirt.io/size: small
spec:
domain:
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
machine:
type: q35
resources:
requests:
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2021-09-10T16:17:44Z"
status: "True"
type: Ready
created: true
printableStatus: Running
ready: true
volumeSnapshotStatuses:
- enabled: false
name: containerdisk
reason: Snapshot is not supported for this volumeSource type [containerdisk]
- enabled: false
name: cloudinitdisk
reason: Snapshot is not supported for this volumeSource type [cloudinitdisk]

View File

@@ -0,0 +1,54 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
annotations:
creationTimestamp: "2021-07-16T00:41:10Z"
labels:
app.kubernetes.io/instance: testv
name: testvm
namespace: testvm
spec:
running: true
template:
metadata:
creationTimestamp: null
labels:
kubevirt.io/domain: testvm
kubevirt.io/size: small
spec:
domain:
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
machine:
type: pc-q35-rhel8.4.0
resources:
requests:
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
status:
volumeSnapshotStatuses:
- enabled: false
name: containerdisk
reason: Volume type has no StorageClass defined
- enabled: false
name: cloudinitdisk
reason: Volume type has no StorageClass defined

View File

@@ -0,0 +1,61 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
annotations:
kubevirt.io/latest-observed-api-version: v1
kubevirt.io/storage-observed-api-version: v1alpha3
name: testvm
namespace: default
spec:
running: false
template:
metadata:
creationTimestamp: null
labels:
kubevirt.io/domain: testvm
kubevirt.io/size: small
spec:
domain:
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
machine:
type: q35
resources:
requests:
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
status:
conditions:
- lastProbeTime: "2021-09-10T16:17:33Z"
lastTransitionTime: "2021-09-10T16:17:33Z"
message: Guest VM is not reported as running
reason: GuestNotRunning
status: "False"
type: Ready
created: true
printableStatus: Starting
volumeSnapshotStatuses:
- enabled: false
name: containerdisk
reason: Snapshot is not supported for this volumeSource type [containerdisk]
- enabled: false
name: cloudinitdisk
reason: Snapshot is not supported for this volumeSource type [cloudinitdisk]

View File

@@ -0,0 +1,67 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
annotations:
kubevirt.io/latest-observed-api-version: v1
kubevirt.io/storage-observed-api-version: v1alpha3
creationTimestamp: "2021-09-14T22:15:10Z"
name: testvm
namespace: default
spec:
running: true
template:
metadata:
creationTimestamp: null
labels:
kubevirt.io/domain: testvm
kubevirt.io/size: small
spec:
domain:
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
machine:
type: q35
resources:
requests:
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2021-09-24T18:45:01Z"
status: "True"
type: Ready
- lastProbeTime: "2021-09-24T18:48:57Z"
lastTransitionTime: "2021-09-24T18:48:57Z"
message: VMI was paused by user
reason: PausedByUser
status: "True"
type: Paused
created: true
printableStatus: Paused
ready: true
volumeSnapshotStatuses:
- enabled: false
name: containerdisk
reason: Snapshot is not supported for this volumeSource type [containerdisk]
- enabled: false
name: cloudinitdisk
reason: Snapshot is not supported for this volumeSource type [cloudinitdisk]

View File

@@ -0,0 +1,60 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
annotations:
kubevirt.io/latest-observed-api-version: v1
kubevirt.io/storage-observed-api-version: v1alpha3
name: testvm
namespace: default
spec:
running: false
template:
metadata:
creationTimestamp: null
labels:
kubevirt.io/domain: testvm
kubevirt.io/size: small
spec:
domain:
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
machine:
type: q35
resources:
requests:
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
status:
conditions:
- lastProbeTime: "2021-09-10T16:11:53Z"
lastTransitionTime: "2021-09-10T16:11:53Z"
message: VMI does not exist
reason: VMINotExists
status: "False"
type: Ready
printableStatus: Stopped
volumeSnapshotStatuses:
- enabled: false
name: containerdisk
reason: Snapshot is not supported for this volumeSource type [containerdisk]
- enabled: false
name: cloudinitdisk
reason: Snapshot is not supported for this volumeSource type [cloudinitdisk]

View File

@@ -0,0 +1,36 @@
hs = { status="Progressing", message="No status available"}
if obj.status ~= nil then
if obj.status.phase ~= nil then
hs.message = obj.status.phase
if hs.message == "Failed" then
hs.status = "Degraded"
return hs
elseif hs.message == "Pending" or hs.message == "Scheduling" or hs.message == "Scheduled" then
return hs
elseif hs.message == "Succeeded" then
hs.status = "Suspended"
return hs
elseif hs.message == "Unknown" then
hs.status = "Unknown"
return hs
end
end
if obj.status.conditions ~= nil then
for i, condition in ipairs(obj.status.conditions) do
if condition.type == "Ready" then
if condition.status == "True" then
hs.status = "Healthy"
hs.message = "Running"
else
hs.status = "Degraded"
hs.message = condition.message
end
elseif condition.type == "Paused" and condition.status == "True" then
hs.status = "Suspended"
hs.message = condition.message
return hs
end
end
end
end
return hs

View File

@@ -0,0 +1,21 @@
tests:
- healthStatus:
status: Progressing
message: "No status available"
inputPath: testdata/progressing_nostatus.yaml
- healthStatus:
status: Progressing
message: "Scheduled"
inputPath: testdata/progressing_scheduling.yaml
- healthStatus:
status: Healthy
message: "Running"
inputPath: testdata/healthy_ready.yaml
- healthStatus:
status: "Suspended"
message: "Succeeded"
inputPath: testdata/suspended_succeeded.yaml
- healthStatus:
status: "Suspended"
message: "VMI was paused by user"
inputPath: testdata/suspended_paused.yaml

View File

@@ -0,0 +1,104 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
annotations:
kubevirt.io/latest-observed-api-version: v1
kubevirt.io/storage-observed-api-version: v1alpha3
creationTimestamp: "2021-09-14T23:39:01Z"
finalizers:
- kubevirt.io/virtualMachineControllerFinalize
- foregroundDeleteVirtualMachine
generation: 8
labels:
kubevirt.io/domain: testvm
kubevirt.io/nodeName: minikube
kubevirt.io/size: small
name: testvm
namespace: default
ownerReferences:
- apiVersion: kubevirt.io/v1
blockOwnerDeletion: true
controller: true
kind: VirtualMachine
name: testvm
uid: 40e44180-3dfb-4813-ace6-9f2d2c76c326
resourceVersion: "602262"
uid: 18648b62-36b6-4b86-bd16-a288aa132203
spec:
domain:
cpu:
cores: 1
sockets: 1
threads: 1
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
features:
acpi:
enabled: true
firmware:
uuid: 5a9fc181-957e-5c32-9e5a-2de5e9673531
machine:
type: q35
resources:
requests:
cpu: 100m
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
imagePullPolicy: Always
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
status:
activePods:
6f699622-20ba-4be2-b84c-aea8141b65b2: minikube
conditions:
- lastProbeTime: null
lastTransitionTime: "2021-09-14T23:39:06Z"
status: "True"
type: Ready
- lastProbeTime: null
lastTransitionTime: null
status: "True"
type: LiveMigratable
guestOSInfo: {}
interfaces:
- ipAddress: 172.17.0.11
ipAddresses:
- 172.17.0.11
mac: 52:54:00:b1:18:f3
name: default
launcherContainerImageVersion: quay.io/kubevirt/virt-launcher:v0.45.0
migrationMethod: BlockMigration
nodeName: minikube
phase: Running
phaseTransitionTimestamps:
- phase: Pending
phaseTransitionTimestamp: "2021-09-14T23:39:01Z"
- phase: Scheduling
phaseTransitionTimestamp: "2021-09-14T23:39:01Z"
- phase: Scheduled
phaseTransitionTimestamp: "2021-09-14T23:39:06Z"
- phase: Running
phaseTransitionTimestamp: "2021-09-14T23:39:08Z"
qosClass: Burstable
virtualMachineRevisionName: revision-start-vm-40e44180-3dfb-4813-ace6-9f2d2c76c326-6
volumeStatus:
- name: cloudinitdisk
target: vdb
- name: containerdisk
target: vda

View File

@@ -0,0 +1,45 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
labels:
kubevirt.io/domain: fedora-gitops1
name: fedora-testvm
namespace: default
spec:
domain:
cpu:
cores: 1
sockets: 1
threads: 1
devices:
disks:
- disk:
bus: virtio
name: fedora
interfaces:
- macAddress: 02:d6:2b:00:00:02
masquerade: {}
name: default
networkInterfaceMultiqueue: true
rng: {}
features:
acpi:
enabled: true
firmware:
uuid: 15c031fd-7655-53c8-96d1-25810660149a
machine:
type: pc-q35-rhel8.4.0
resources:
requests:
cpu: 100m
memory: 2Gi
evictionStrategy: LiveMigrate
networks:
- name: default
pod: {}
terminationGracePeriodSeconds: 180
volumes:
- dataVolume:
name: fedora
name: fedora
status: {}

View File

@@ -0,0 +1,74 @@
apiVersion: v1
items:
- apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
creationTimestamp: "2021-09-14T23:39:01Z"
finalizers:
- kubevirt.io/virtualMachineControllerFinalize
- foregroundDeleteVirtualMachine
generation: 1
labels:
kubevirt.io/domain: testvm
kubevirt.io/size: small
name: testvm
namespace: default
ownerReferences:
- apiVersion: kubevirt.io/v1
blockOwnerDeletion: true
controller: true
kind: VirtualMachine
name: testvm
uid: 40e44180-3dfb-4813-ace6-9f2d2c76c326
resourceVersion: "602212"
uid: 18648b62-36b6-4b86-bd16-a288aa132203
spec:
domain:
cpu:
cores: 1
sockets: 1
threads: 1
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
features:
acpi:
enabled: true
firmware:
uuid: 5a9fc181-957e-5c32-9e5a-2de5e9673531
machine:
type: q35
resources:
requests:
cpu: 100m
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
imagePullPolicy: Always
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
status:
guestOSInfo: {}
phase: Pending
phaseTransitionTimestamps:
- phase: Pending
phaseTransitionTimestamp: "2021-09-14T23:39:01Z"
virtualMachineRevisionName: revision-start-vm-40e44180-3dfb-4813-ace6-9f2d2c76c326-6
kind: List
metadata:
resourceVersion: ""
selfLink: ""

View File

@@ -0,0 +1,92 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
annotations:
kubevirt.io/latest-observed-api-version: v1
kubevirt.io/storage-observed-api-version: v1alpha3
creationTimestamp: "2021-09-14T23:39:01Z"
finalizers:
- kubevirt.io/virtualMachineControllerFinalize
- foregroundDeleteVirtualMachine
generation: 5
labels:
kubevirt.io/domain: testvm
kubevirt.io/nodeName: minikube
kubevirt.io/size: small
name: testvm
namespace: default
ownerReferences:
- apiVersion: kubevirt.io/v1
blockOwnerDeletion: true
controller: true
kind: VirtualMachine
name: testvm
uid: 40e44180-3dfb-4813-ace6-9f2d2c76c326
resourceVersion: "602255"
uid: 18648b62-36b6-4b86-bd16-a288aa132203
spec:
domain:
cpu:
cores: 1
sockets: 1
threads: 1
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
features:
acpi:
enabled: true
firmware:
uuid: 5a9fc181-957e-5c32-9e5a-2de5e9673531
machine:
type: q35
resources:
requests:
cpu: 100m
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
imagePullPolicy: Always
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
status:
activePods:
6f699622-20ba-4be2-b84c-aea8141b65b2: minikube
conditions:
- lastProbeTime: "2021-09-14T23:39:01Z"
lastTransitionTime: "2021-09-14T23:39:01Z"
message: Guest VM is not reported as running
reason: GuestNotRunning
status: "False"
type: Ready
guestOSInfo: {}
nodeName: minikube
phase: Scheduled
phaseTransitionTimestamps:
- phase: Pending
phaseTransitionTimestamp: "2021-09-14T23:39:01Z"
- phase: Scheduling
phaseTransitionTimestamp: "2021-09-14T23:39:01Z"
- phase: Scheduled
phaseTransitionTimestamp: "2021-09-14T23:39:06Z"
qosClass: Burstable
virtualMachineRevisionName: revision-start-vm-40e44180-3dfb-4813-ace6-9f2d2c76c326-6
volumeStatus:
- name: cloudinitdisk
target: ""
- name: containerdisk
target: ""

View File

@@ -0,0 +1,110 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
annotations:
kubevirt.io/latest-observed-api-version: v1
kubevirt.io/storage-observed-api-version: v1alpha3
creationTimestamp: "2021-09-24T18:44:53Z"
finalizers:
- kubevirt.io/virtualMachineControllerFinalize
- foregroundDeleteVirtualMachine
generation: 9
labels:
kubevirt.io/domain: testvm
kubevirt.io/nodeName: minikube
kubevirt.io/size: small
name: testvm
namespace: default
ownerReferences:
- apiVersion: kubevirt.io/v1
blockOwnerDeletion: true
controller: true
kind: VirtualMachine
name: testvm
uid: 40e44180-3dfb-4813-ace6-9f2d2c76c326
resourceVersion: "867783"
uid: 280e9c9c-1c43-4cfa-8098-c70f74dae01d
spec:
domain:
cpu:
cores: 1
sockets: 1
threads: 1
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
features:
acpi:
enabled: true
firmware:
uuid: 5a9fc181-957e-5c32-9e5a-2de5e9673531
machine:
type: q35
resources:
requests:
cpu: 100m
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
imagePullPolicy: Always
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
status:
activePods:
8689d878-8688-45eb-9676-da41bac5b935: minikube
conditions:
- lastProbeTime: null
lastTransitionTime: "2021-09-24T18:45:01Z"
status: "True"
type: Ready
- lastProbeTime: null
lastTransitionTime: null
status: "True"
type: LiveMigratable
- lastProbeTime: "2021-09-24T18:48:57Z"
lastTransitionTime: "2021-09-24T18:48:57Z"
message: VMI was paused by user
reason: PausedByUser
status: "True"
type: Paused
guestOSInfo: {}
interfaces:
- ipAddress: 172.17.0.11
ipAddresses:
- 172.17.0.11
mac: 52:54:00:c9:c9:b1
name: default
launcherContainerImageVersion: quay.io/kubevirt/virt-launcher:v0.45.0
migrationMethod: BlockMigration
nodeName: minikube
phase: Running
phaseTransitionTimestamps:
- phase: Pending
phaseTransitionTimestamp: "2021-09-24T18:44:53Z"
- phase: Scheduling
phaseTransitionTimestamp: "2021-09-24T18:44:53Z"
- phase: Scheduled
phaseTransitionTimestamp: "2021-09-24T18:45:01Z"
- phase: Running
phaseTransitionTimestamp: "2021-09-24T18:45:02Z"
qosClass: Burstable
virtualMachineRevisionName: revision-start-vm-40e44180-3dfb-4813-ace6-9f2d2c76c326-6
volumeStatus:
- name: cloudinitdisk
target: vdb
- name: containerdisk
target: vda

View File

@@ -0,0 +1,100 @@
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
annotations:
kubevirt.io/latest-observed-api-version: v1
kubevirt.io/storage-observed-api-version: v1alpha3
creationTimestamp: "2021-09-14T22:27:08Z"
deletionGracePeriodSeconds: 0
deletionTimestamp: "2021-09-14T23:07:57Z"
finalizers:
- foregroundDeleteVirtualMachine
generation: 11
labels:
kubevirt.io/domain: testvm
kubevirt.io/nodeName: minikube
kubevirt.io/size: small
name: testvm
namespace: default
spec:
domain:
cpu:
cores: 1
sockets: 1
threads: 1
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
features:
acpi:
enabled: true
firmware:
uuid: 5a9fc181-957e-5c32-9e5a-2de5e9673531
machine:
type: q35
resources:
requests:
cpu: 100m
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
imagePullPolicy: Always
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
status:
activePods:
8190c35b-95ef-42a8-ab18-77dcfb729e79: minikube
conditions:
- lastProbeTime: "2021-09-14T23:07:57Z"
lastTransitionTime: "2021-09-14T23:07:57Z"
message: virt-launcher pod is terminating
reason: PodTerminating
status: "False"
type: Ready
- lastProbeTime: null
lastTransitionTime: null
status: "True"
type: LiveMigratable
guestOSInfo: {}
interfaces:
- ipAddress: 172.17.0.11
ipAddresses:
- 172.17.0.11
mac: 52:54:00:ea:73:fd
name: default
launcherContainerImageVersion: quay.io/kubevirt/virt-launcher:v0.45.0
migrationMethod: BlockMigration
nodeName: minikube
phase: Succeeded
phaseTransitionTimestamps:
- phase: Pending
phaseTransitionTimestamp: "2021-09-14T22:27:08Z"
- phase: Scheduling
phaseTransitionTimestamp: "2021-09-14T22:27:08Z"
- phase: Scheduled
phaseTransitionTimestamp: "2021-09-14T22:27:15Z"
- phase: Running
phaseTransitionTimestamp: "2021-09-14T22:27:16Z"
- phase: Succeeded
phaseTransitionTimestamp: "2021-09-14T23:08:00Z"
qosClass: Burstable
virtualMachineRevisionName: revision-start-vm-40e44180-3dfb-4813-ace6-9f2d2c76c326-4
volumeStatus:
- name: cloudinitdisk
target: vdb
- name: containerdisk
target: vda