Skip to content

Instantly share code, notes, and snippets.

@yuvalif
Last active October 24, 2018 06:12
Show Gist options
  • Save yuvalif/9449bdd78a227e6780f3d9bd66043f1c to your computer and use it in GitHub Desktop.
Save yuvalif/9449bdd78a227e6780f3d9bd66043f1c to your computer and use it in GitHub Desktop.
# Monitoring
apiVersion: v1
kind: Service
metadata:
name: kubevirt-prometheus-metrics
namespace: kube-system
labels:
prometheus.kubevirt.io: ""
kubevirt.io: ""
spec:
ports:
- name: metrics
port: 443
targetPort: metrics
protocol: TCP
selector:
prometheus.kubevirt.io: ""
---
# RBAC
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: kubevirt.io:admin
labels:
kubevirt.io: ""
rbac.authorization.k8s.io/aggregate-to-admin: "true"
rules:
- apiGroups:
- subresources.kubevirt.io
resources:
- virtualmachineinstances/console
- virtualmachineinstances/vnc
verbs:
- get
- apiGroups:
- kubevirt.io
resources:
- virtualmachineinstances
- virtualmachines
- virtualmachineinstancepresets
- virtualmachineinstancereplicasets
verbs:
- get
- delete
- create
- update
- patch
- list
- watch
- deletecollection
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: kubevirt.io:edit
labels:
kubevirt.io: ""
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rules:
- apiGroups:
- subresources.kubevirt.io
resources:
- virtualmachineinstances/console
- virtualmachineinstances/vnc
verbs:
- get
- apiGroups:
- kubevirt.io
resources:
- virtualmachineinstances
- virtualmachines
- virtualmachineinstancepresets
- virtualmachineinstancereplicasets
verbs:
- get
- delete
- create
- update
- patch
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: kubevirt.io:view
labels:
kubevirt.io: ""
rbac.authorization.k8s.io/aggregate-to-view: "true"
rules:
- apiGroups:
- kubevirt.io
resources:
- virtualmachineinstances
- virtualmachines
- virtualmachineinstancepresets
- virtualmachineinstancereplicasets
verbs:
- get
- list
- watch
---
kind: ServiceAccount
apiVersion: v1
metadata:
name: kubevirt-apiserver
namespace: kube-system
labels:
kubevirt.io: ""
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubevirt-apiserver
namespace: kube-system
labels:
kubevirt.io: ""
roleRef:
kind: ClusterRole
name: kubevirt-apiserver
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: kubevirt-apiserver
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubevirt-apiserver-auth-delegator
namespace: kube-system
labels:
kubevirt.io: ""
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:auth-delegator
subjects:
- kind: ServiceAccount
name: kubevirt-apiserver
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
name: kubevirt-apiserver
namespace: kube-system
labels:
kubevirt.io: ""
roleRef:
kind: Role
name: kubevirt-apiserver
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: kubevirt-apiserver
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
name: kubevirt-apiserver
namespace: kube-system
labels:
kubevirt.io: ""
rules:
- apiGroups:
- ''
resources:
- secrets
verbs:
- get
- list
- delete
- update
- create
- apiGroups:
- ''
resources:
- configmaps
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: kubevirt-apiserver
namespace: kube-system
labels:
kubevirt.io: ""
rules:
- apiGroups:
- admissionregistration.k8s.io
resources:
- validatingwebhookconfigurations
- mutatingwebhookconfigurations
verbs:
- get
- create
- update
- apiGroups:
- apiregistration.k8s.io
resources:
- apiservices
verbs:
- get
- create
- update
- apiGroups:
- ''
resources:
- pods
verbs:
- get
- list
- apiGroups:
- ''
resources:
- configmaps
resourceNames:
- extension-apiserver-authentication
verbs:
- get
- list
- watch
- apiGroups:
- ''
resources:
- pods/exec
verbs:
- create
- apiGroups:
- kubevirt.io
resources:
- virtualmachineinstances
- virtualmachineinstancemigrations
verbs:
- get
- list
- watch
- apiGroups:
- ''
resources:
- limitranges
verbs:
- watch
- list
- apiGroups:
- kubevirt.io
resources:
- virtualmachineinstancepresets
verbs:
- watch
- list
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: kubevirt-controller
namespace: kube-system
labels:
kubevirt.io: ""
rules:
- apiGroups:
- ''
resources:
- pods
- configmaps
- endpoints
verbs:
- get
- list
- watch
- delete
- update
- create
- apiGroups:
- ''
resources:
- events
verbs:
- update
- create
- patch
- apiGroups:
- ''
resources:
- nodes
verbs:
- get
- list
- watch
- update
- patch
- apiGroups:
- ''
resources:
- persistentvolumeclaims
verbs:
- get
- list
- watch
- apiGroups:
- kubevirt.io
resources:
- '*'
verbs:
- '*'
- apiGroups:
- cdi.kubevirt.io
resources:
- '*'
verbs:
- '*'
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kubevirt-controller
namespace: kube-system
labels:
kubevirt.io: ""
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kubevirt-privileged
namespace: kube-system
labels:
kubevirt.io: ""
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubevirt-controller
namespace: kube-system
labels:
kubevirt.io: ""
roleRef:
kind: ClusterRole
name: kubevirt-controller
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: kubevirt-controller
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubevirt-privileged-cluster-admin
namespace: kube-system
labels:
kubevirt.io: ""
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: kubevirt-privileged
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubevirt.io: ""
kubernetes.io/bootstrapping: rbac-defaults
name: kubevirt.io:default
rules:
- apiGroups:
- subresources.kubevirt.io
resources:
- version
verbs:
- get
- list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
kubevirt.io: ""
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
name: kubevirt.io:default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kubevirt.io:default
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:authenticated
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:unauthenticated
---
apiVersion: v1
kind: Service
metadata:
name: virt-api
namespace: kube-system
labels:
kubevirt.io: "virt-api"
spec:
ports:
- port: 443
targetPort: 8443
protocol: TCP
selector:
kubevirt.io: virt-api
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: virt-api
namespace: kube-system
labels:
kubevirt.io: "virt-api"
spec:
replicas: 2
template:
metadata:
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ""
scheduler.alpha.kubernetes.io/tolerations: |
[
{
"key": "CriticalAddonsOnly",
"operator": "Exists"
}
]
labels:
kubevirt.io: virt-api
prometheus.kubevirt.io: ""
spec:
serviceAccountName: kubevirt-apiserver
containers:
- name: virt-api
image: kubevirt/virt-api:latest
imagePullPolicy: Always
command:
- "virt-api"
- "--port"
- "8443"
- "--subresources-only"
ports:
- containerPort: 8443
name: "virt-api"
protocol: "TCP"
- containerPort: 8443
name: "metrics"
protocol: "TCP"
readinessProbe:
tcpSocket:
port: 8443
initialDelaySeconds: 5
periodSeconds: 10
securityContext:
runAsNonRoot: true
---
# kubevirt controller
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: virt-controller
namespace: kube-system
labels:
kubevirt.io: "virt-controller"
spec:
replicas: 2
template:
metadata:
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ""
scheduler.alpha.kubernetes.io/tolerations: |
[
{
"key": "CriticalAddonsOnly",
"operator": "Exists"
}
]
labels:
kubevirt.io: virt-controller
prometheus.kubevirt.io: ""
spec:
serviceAccountName: kubevirt-controller
containers:
- name: virt-controller
image: kubevirt/virt-controller:latest
imagePullPolicy: Always
command:
- "virt-controller"
- "--launcher-image"
- "kubevirt/virt-launcher:latest"
- "--port"
- "8443"
ports:
- containerPort: 8443
name: "metrics"
protocol: "TCP"
livenessProbe:
failureThreshold: 8
httpGet:
scheme: HTTPS
port: 8443
path: /healthz
initialDelaySeconds: 15
timeoutSeconds: 10
readinessProbe:
httpGet:
scheme: HTTPS
port: 8443
path: /leader
initialDelaySeconds: 15
timeoutSeconds: 10
securityContext:
runAsNonRoot: true
---
# virt-handler daemon set
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: virt-handler
namespace: kube-system
labels:
kubevirt.io: "virt-handler"
spec:
updateStrategy:
type: RollingUpdate
template:
metadata:
name: virt-handler
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ""
scheduler.alpha.kubernetes.io/tolerations: |
[
{
"key": "CriticalAddonsOnly",
"operator": "Exists"
}
]
labels:
kubevirt.io: virt-handler
prometheus.kubevirt.io: ""
spec:
serviceAccountName: kubevirt-privileged
hostPID: true
containers:
- name: virt-handler
ports:
- containerPort: 8443
name: "metrics"
protocol: "TCP"
image: kubevirt/virt-handler:latest
imagePullPolicy: Always
command:
- "virt-handler"
- "-v"
- "3"
- "--port"
- "8443"
- "--hostname-override"
- "$(NODE_NAME)"
- "--pod-ip-address"
- "$(MY_POD_IP)"
securityContext:
privileged: true
volumeMounts:
- name: libvirt-runtimes
mountPath: /var/run/kubevirt-libvirt-runtimes
- name: virt-share-dir
mountPath: /var/run/kubevirt
- name: virt-private-dir
mountPath: /var/run/kubevirt-private
- name: device-plugin
mountPath: /var/lib/kubelet/device-plugins
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
volumes:
- name: libvirt-runtimes
hostPath:
path: /var/run/kubevirt-libvirt-runtimes
- name: virt-share-dir
hostPath:
path: /var/run/kubevirt
- name: virt-private-dir
hostPath:
path: /var/run/kubevirt-private
- name: device-plugin
hostPath:
path: /var/lib/kubelet/device-plugins
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
kubevirt.io: ""
name: virtualmachineinstances.kubevirt.io
spec:
group: kubevirt.io
names:
kind: VirtualMachineInstance
plural: virtualmachineinstances
shortNames:
- vmi
- vmis
singular: virtualmachineinstance
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata: {}
spec:
properties:
affinity: {}
domain:
properties:
clock:
properties:
timezone:
type: string
utc:
properties:
offsetSeconds:
format: int32
type: integer
cpu:
properties:
cores:
format: int64
type: integer
dedicatedCpuPlacement:
type: boolean
model:
type: string
devices:
properties:
autoattachGraphicsDevice:
type: boolean
autoattachPodInterface:
type: boolean
blockMultiQueue:
type: boolean
disks:
items:
properties:
bootOrder:
format: int32
type: integer
cache:
type: string
cdrom:
properties:
bus:
type: string
readonly:
type: boolean
tray:
type: string
dedicatedIOThread:
type: boolean
disk:
properties:
bus:
type: string
pciAddress:
type: string
readonly:
type: boolean
floppy:
properties:
readonly:
type: boolean
tray:
type: string
lun:
properties:
bus:
type: string
readonly:
type: boolean
name:
type: string
serial:
type: string
volumeName:
type: string
required:
- name
- volumeName
type: array
interfaces:
items:
properties:
bootOrder:
format: int32
type: integer
bridge: {}
macAddress:
type: string
model:
type: string
name:
type: string
pciAddress:
type: string
ports:
items:
properties:
name:
type: string
port:
format: int32
type: integer
protocol:
type: string
required:
- port
type: array
slirp: {}
required:
- name
type: array
networkInterfaceMultiqueue:
type: boolean
rng: {}
watchdog:
properties:
i6300esb:
properties:
action:
type: string
name:
type: string
required:
- name
features:
properties:
acpi:
properties:
enabled:
type: boolean
apic:
properties:
enabled:
type: boolean
endOfInterrupt:
type: boolean
hyperv:
properties:
relaxed:
properties:
enabled:
type: boolean
reset:
properties:
enabled:
type: boolean
runtime:
properties:
enabled:
type: boolean
spinlocks:
properties:
enabled:
type: boolean
spinlocks:
format: int64
type: integer
synic:
properties:
enabled:
type: boolean
synictimer:
properties:
enabled:
type: boolean
vapic:
properties:
enabled:
type: boolean
vendorid:
properties:
enabled:
type: boolean
vendorid:
type: string
vpindex:
properties:
enabled:
type: boolean
firmware:
properties:
uuid:
type: string
ioThreadsPolicy:
type: string
machine:
properties:
type:
type: string
required:
- type
memory:
properties:
guest: {}
hugepages:
properties:
pageSize:
type: string
resources:
properties:
limits:
type: object
overcommitGuestOverhead:
type: boolean
requests:
type: object
required:
- devices
hostname:
type: string
networks:
items:
properties:
genie:
properties:
networkName:
type: string
required:
- networkName
multus:
properties:
networkName:
type: string
required:
- networkName
name:
type: string
pod:
properties:
vmNetworkCIDR:
type: string
required:
- name
type: array
nodeSelector:
type: object
subdomain:
type: string
terminationGracePeriodSeconds:
format: int64
type: integer
tolerations:
items: {}
type: array
volumes:
items:
properties:
cloudInitNoCloud:
properties:
secretRef: {}
userData:
type: string
userDataBase64:
type: string
configMap:
properties:
name:
type: string
optional:
type: boolean
dataVolume:
properties:
name:
type: string
required:
- name
emptyDisk:
properties:
capacity: {}
required:
- capacity
ephemeral:
properties:
persistentVolumeClaim: {}
hostDisk:
properties:
capacity: {}
path:
type: string
type:
type: string
required:
- path
- type
name:
type: string
persistentVolumeClaim: {}
registryDisk:
properties:
image:
type: string
imagePullSecret:
type: string
required:
- image
secret:
properties:
optional:
type: boolean
secretName:
type: string
serviceAccount:
properties:
serviceAccountName:
type: string
required:
- name
type: array
required:
- domain
status:
properties:
conditions:
items:
properties:
lastProbeTime: {}
lastTransitionTime: {}
message:
type: string
reason:
type: string
status:
type: string
type:
type: string
required:
- type
- status
type: array
interfaces:
items:
properties:
ipAddress:
type: string
mac:
type: string
type: array
migrationState: {}
nodeName:
type: string
phase:
type: string
reason:
type: string
version: v1alpha2
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
kubevirt.io: ""
name: virtualmachineinstancereplicasets.kubevirt.io
spec:
group: kubevirt.io
names:
kind: VirtualMachineInstanceReplicaSet
plural: virtualmachineinstancereplicasets
shortNames:
- vmirs
- vmirss
singular: virtualmachineinstancereplicaset
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata: {}
spec:
properties:
paused:
type: boolean
replicas:
format: int32
type: integer
selector: {}
template:
properties:
metadata: {}
spec:
properties:
affinity: {}
domain:
properties:
clock:
properties:
timezone:
type: string
utc:
properties:
offsetSeconds:
format: int32
type: integer
cpu:
properties:
cores:
format: int64
type: integer
dedicatedCpuPlacement:
type: boolean
model:
type: string
devices:
properties:
autoattachGraphicsDevice:
type: boolean
autoattachPodInterface:
type: boolean
blockMultiQueue:
type: boolean
disks:
items:
properties:
bootOrder:
format: int32
type: integer
cache:
type: string
cdrom:
properties:
bus:
type: string
readonly:
type: boolean
tray:
type: string
dedicatedIOThread:
type: boolean
disk:
properties:
bus:
type: string
pciAddress:
type: string
readonly:
type: boolean
floppy:
properties:
readonly:
type: boolean
tray:
type: string
lun:
properties:
bus:
type: string
readonly:
type: boolean
name:
type: string
serial:
type: string
volumeName:
type: string
required:
- name
- volumeName
type: array
interfaces:
items:
properties:
bootOrder:
format: int32
type: integer
bridge: {}
macAddress:
type: string
model:
type: string
name:
type: string
pciAddress:
type: string
ports:
items:
properties:
name:
type: string
port:
format: int32
type: integer
protocol:
type: string
required:
- port
type: array
slirp: {}
required:
- name
type: array
networkInterfaceMultiqueue:
type: boolean
rng: {}
watchdog:
properties:
i6300esb:
properties:
action:
type: string
name:
type: string
required:
- name
features:
properties:
acpi:
properties:
enabled:
type: boolean
apic:
properties:
enabled:
type: boolean
endOfInterrupt:
type: boolean
hyperv:
properties:
relaxed:
properties:
enabled:
type: boolean
reset:
properties:
enabled:
type: boolean
runtime:
properties:
enabled:
type: boolean
spinlocks:
properties:
enabled:
type: boolean
spinlocks:
format: int64
type: integer
synic:
properties:
enabled:
type: boolean
synictimer:
properties:
enabled:
type: boolean
vapic:
properties:
enabled:
type: boolean
vendorid:
properties:
enabled:
type: boolean
vendorid:
type: string
vpindex:
properties:
enabled:
type: boolean
firmware:
properties:
uuid:
type: string
ioThreadsPolicy:
type: string
machine:
properties:
type:
type: string
required:
- type
memory:
properties:
guest: {}
hugepages:
properties:
pageSize:
type: string
resources:
properties:
limits:
type: object
overcommitGuestOverhead:
type: boolean
requests:
type: object
required:
- devices
hostname:
type: string
networks:
items:
properties:
genie:
properties:
networkName:
type: string
required:
- networkName
multus:
properties:
networkName:
type: string
required:
- networkName
name:
type: string
pod:
properties:
vmNetworkCIDR:
type: string
required:
- name
type: array
nodeSelector:
type: object
subdomain:
type: string
terminationGracePeriodSeconds:
format: int64
type: integer
tolerations:
items: {}
type: array
volumes:
items:
properties:
cloudInitNoCloud:
properties:
secretRef: {}
userData:
type: string
userDataBase64:
type: string
configMap:
properties:
name:
type: string
optional:
type: boolean
dataVolume:
properties:
name:
type: string
required:
- name
emptyDisk:
properties:
capacity: {}
required:
- capacity
ephemeral:
properties:
persistentVolumeClaim: {}
hostDisk:
properties:
capacity: {}
path:
type: string
type:
type: string
required:
- path
- type
name:
type: string
persistentVolumeClaim: {}
registryDisk:
properties:
image:
type: string
imagePullSecret:
type: string
required:
- image
secret:
properties:
optional:
type: boolean
secretName:
type: string
serviceAccount:
properties:
serviceAccountName:
type: string
required:
- name
type: array
required:
- domain
required:
- selector
- template
status:
properties:
conditions:
items:
properties:
lastProbeTime: {}
lastTransitionTime: {}
message:
type: string
reason:
type: string
status:
type: string
type:
type: string
required:
- type
- status
type: array
readyReplicas:
format: int32
type: integer
replicas:
format: int32
type: integer
version: v1alpha2
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
kubevirt.io: ""
name: virtualmachineinstancepresets.kubevirt.io
spec:
group: kubevirt.io
names:
kind: VirtualMachineInstancePreset
plural: virtualmachineinstancepresets
shortNames:
- vmipreset
- vmipresets
singular: virtualmachineinstancepreset
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata: {}
spec:
properties:
domain:
properties:
clock:
properties:
timezone:
type: string
utc:
properties:
offsetSeconds:
format: int32
type: integer
cpu:
properties:
cores:
format: int64
type: integer
dedicatedCpuPlacement:
type: boolean
model:
type: string
devices:
properties:
autoattachGraphicsDevice:
type: boolean
autoattachPodInterface:
type: boolean
blockMultiQueue:
type: boolean
disks:
items:
properties:
bootOrder:
format: int32
type: integer
cache:
type: string
cdrom:
properties:
bus:
type: string
readonly:
type: boolean
tray:
type: string
dedicatedIOThread:
type: boolean
disk:
properties:
bus:
type: string
pciAddress:
type: string
readonly:
type: boolean
floppy:
properties:
readonly:
type: boolean
tray:
type: string
lun:
properties:
bus:
type: string
readonly:
type: boolean
name:
type: string
serial:
type: string
volumeName:
type: string
required:
- name
- volumeName
type: array
interfaces:
items:
properties:
bootOrder:
format: int32
type: integer
bridge: {}
macAddress:
type: string
model:
type: string
name:
type: string
pciAddress:
type: string
ports:
items:
properties:
name:
type: string
port:
format: int32
type: integer
protocol:
type: string
required:
- port
type: array
slirp: {}
required:
- name
type: array
networkInterfaceMultiqueue:
type: boolean
rng: {}
watchdog:
properties:
i6300esb:
properties:
action:
type: string
name:
type: string
required:
- name
features:
properties:
acpi:
properties:
enabled:
type: boolean
apic:
properties:
enabled:
type: boolean
endOfInterrupt:
type: boolean
hyperv:
properties:
relaxed:
properties:
enabled:
type: boolean
reset:
properties:
enabled:
type: boolean
runtime:
properties:
enabled:
type: boolean
spinlocks:
properties:
enabled:
type: boolean
spinlocks:
format: int64
type: integer
synic:
properties:
enabled:
type: boolean
synictimer:
properties:
enabled:
type: boolean
vapic:
properties:
enabled:
type: boolean
vendorid:
properties:
enabled:
type: boolean
vendorid:
type: string
vpindex:
properties:
enabled:
type: boolean
firmware:
properties:
uuid:
type: string
ioThreadsPolicy:
type: string
machine:
properties:
type:
type: string
required:
- type
memory:
properties:
guest: {}
hugepages:
properties:
pageSize:
type: string
resources:
properties:
limits:
type: object
overcommitGuestOverhead:
type: boolean
requests:
type: object
required:
- devices
selector: {}
required:
- selector
version: v1alpha2
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
kubevirt.io: ""
name: virtualmachines.kubevirt.io
spec:
group: kubevirt.io
names:
kind: VirtualMachine
plural: virtualmachines
shortNames:
- vm
- vms
singular: virtualmachine
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata: {}
spec:
properties:
dataVolumeTemplates:
items: {}
type: array
running:
type: boolean
template:
properties:
metadata: {}
spec:
properties:
affinity: {}
domain:
properties:
clock:
properties:
timezone:
type: string
utc:
properties:
offsetSeconds:
format: int32
type: integer
cpu:
properties:
cores:
format: int64
type: integer
dedicatedCpuPlacement:
type: boolean
model:
type: string
devices:
properties:
autoattachGraphicsDevice:
type: boolean
autoattachPodInterface:
type: boolean
blockMultiQueue:
type: boolean
disks:
items:
properties:
bootOrder:
format: int32
type: integer
cache:
type: string
cdrom:
properties:
bus:
type: string
readonly:
type: boolean
tray:
type: string
dedicatedIOThread:
type: boolean
disk:
properties:
bus:
type: string
pciAddress:
type: string
readonly:
type: boolean
floppy:
properties:
readonly:
type: boolean
tray:
type: string
lun:
properties:
bus:
type: string
readonly:
type: boolean
name:
type: string
serial:
type: string
volumeName:
type: string
required:
- name
- volumeName
type: array
interfaces:
items:
properties:
bootOrder:
format: int32
type: integer
bridge: {}
macAddress:
type: string
model:
type: string
name:
type: string
pciAddress:
type: string
ports:
items:
properties:
name:
type: string
port:
format: int32
type: integer
protocol:
type: string
required:
- port
type: array
slirp: {}
required:
- name
type: array
networkInterfaceMultiqueue:
type: boolean
rng: {}
watchdog:
properties:
i6300esb:
properties:
action:
type: string
name:
type: string
required:
- name
features:
properties:
acpi:
properties:
enabled:
type: boolean
apic:
properties:
enabled:
type: boolean
endOfInterrupt:
type: boolean
hyperv:
properties:
relaxed:
properties:
enabled:
type: boolean
reset:
properties:
enabled:
type: boolean
runtime:
properties:
enabled:
type: boolean
spinlocks:
properties:
enabled:
type: boolean
spinlocks:
format: int64
type: integer
synic:
properties:
enabled:
type: boolean
synictimer:
properties:
enabled:
type: boolean
vapic:
properties:
enabled:
type: boolean
vendorid:
properties:
enabled:
type: boolean
vendorid:
type: string
vpindex:
properties:
enabled:
type: boolean
firmware:
properties:
uuid:
type: string
ioThreadsPolicy:
type: string
machine:
properties:
type:
type: string
required:
- type
memory:
properties:
guest: {}
hugepages:
properties:
pageSize:
type: string
resources:
properties:
limits:
type: object
overcommitGuestOverhead:
type: boolean
requests:
type: object
required:
- devices
hostname:
type: string
networks:
items:
properties:
genie:
properties:
networkName:
type: string
required:
- networkName
multus:
properties:
networkName:
type: string
required:
- networkName
name:
type: string
pod:
properties:
vmNetworkCIDR:
type: string
required:
- name
type: array
nodeSelector:
type: object
subdomain:
type: string
terminationGracePeriodSeconds:
format: int64
type: integer
tolerations:
items: {}
type: array
volumes:
items:
properties:
cloudInitNoCloud:
properties:
secretRef: {}
userData:
type: string
userDataBase64:
type: string
configMap:
properties:
name:
type: string
optional:
type: boolean
dataVolume:
properties:
name:
type: string
required:
- name
emptyDisk:
properties:
capacity: {}
required:
- capacity
ephemeral:
properties:
persistentVolumeClaim: {}
hostDisk:
properties:
capacity: {}
path:
type: string
type:
type: string
required:
- path
- type
name:
type: string
persistentVolumeClaim: {}
registryDisk:
properties:
image:
type: string
imagePullSecret:
type: string
required:
- image
secret:
properties:
optional:
type: boolean
secretName:
type: string
serviceAccount:
properties:
serviceAccountName:
type: string
required:
- name
type: array
required:
- domain
required:
- running
- template
status:
properties:
conditions:
items:
properties:
lastProbeTime: {}
lastTransitionTime: {}
message:
type: string
reason:
type: string
status:
type: string
type:
type: string
required:
- type
- status
type: array
created:
type: boolean
ready:
type: boolean
version: v1alpha2
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
labels:
kubevirt.io: ""
name: virtualmachineinstancemigrations.kubevirt.io
spec:
group: kubevirt.io
names:
kind: VirtualMachineInstanceMigration
plural: virtualmachineinstancemigrations
shortNames:
- vmim
- vmims
singular: virtualmachineinstancemigration
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata: {}
spec:
properties:
vmiName:
type: string
status:
properties:
phase:
type: string
version: v1alpha2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment