VirtualMachineInstance [virtualmachineinstances.kubevirt.io/v1]
- Description
- VirtualMachineInstance is *the* VirtualMachineInstance Definition. It represents a virtual machine in the runtime environment of kubernetes.
- Type
object- Required
spec
Specification
.spec
- Description
- VirtualMachineInstance Spec contains the VirtualMachineInstance specification.
- Type
object- Required
domain
.spec.accessCredentials
- Description
- Specifies a set of public keys to inject into the vm guest
- Type
array
.spec.accessCredentials[]
- Description
- AccessCredential represents a credential source that can be used to authorize remote access to the vm guest Only one of its members may be specified.
- Type
object
.spec.accessCredentials[].sshPublicKey
- Description
- SSHPublicKey represents the source and method of applying a ssh public key into a guest virtual machine.
- Type
object- Required
propagationMethodsource
.spec.accessCredentials[].sshPublicKey.propagationMethod
- Description
- PropagationMethod represents how the public key is injected into the vm guest.
- Type
object
.spec.accessCredentials[].sshPublicKey.propagationMethod.configDrive
- Description
- ConfigDrivePropagation means that the ssh public keys are injected into the VM using metadata using the configDrive cloud-init provider
- Type
object
.spec.accessCredentials[].sshPublicKey.propagationMethod.noCloud
- Description
- NoCloudPropagation means that the ssh public keys are injected into the VM using metadata using the noCloud cloud-init provider
- Type
object
.spec.accessCredentials[].sshPublicKey.propagationMethod.qemuGuestAgent
- Description
- QemuGuestAgentAccessCredentailPropagation means ssh public keys are dynamically injected into the vm at runtime via the qemu guest agent. This feature requires the qemu guest agent to be running within the guest.
- Type
object- Required
users
.spec.accessCredentials[].sshPublicKey.propagationMethod.qemuGuestAgent.users
- Description
- Users represents a list of guest users that should have the ssh public keys added to their authorized_keys file.
- Type
array
.spec.accessCredentials[].sshPublicKey.propagationMethod.qemuGuestAgent.users[]
- Type
string
.spec.accessCredentials[].sshPublicKey.source
- Description
- Source represents where the public keys are pulled from
- Type
object
.spec.accessCredentials[].sshPublicKey.source.secret
- Description
- Secret means that the access credential is pulled from a kubernetes secret
- Type
object- Required
secretName
.spec.accessCredentials[].userPassword
- Description
- UserPassword represents the source and method for applying a guest user's password
- Type
object- Required
propagationMethodsource
.spec.accessCredentials[].userPassword.propagationMethod
- Description
- propagationMethod represents how the user passwords are injected into the vm guest.
- Type
object
.spec.accessCredentials[].userPassword.propagationMethod.qemuGuestAgent
- Description
- QemuGuestAgentAccessCredentailPropagation means passwords are dynamically injected into the vm at runtime via the qemu guest agent. This feature requires the qemu guest agent to be running within the guest.
- Type
object
.spec.accessCredentials[].userPassword.source
- Description
- Source represents where the user passwords are pulled from
- Type
object
.spec.accessCredentials[].userPassword.source.secret
- Description
- Secret means that the access credential is pulled from a kubernetes secret
- Type
object- Required
secretName
.spec.affinity
- Description
- If affinity is specifies, obey all the affinity rules
- Type
object
.spec.affinity.nodeAffinity
- Description
- Describes node affinity scheduling rules for the pod.
- Type
object
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
- Description
- The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.
- Type
array
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]
- Description
- An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
- Type
object- Required
preferenceweight
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference
- Description
- A node selector term, associated with the corresponding weight.
- Type
object
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions
- Description
- A list of node selector requirements by node's labels.
- Type
array
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[]
- Description
- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values
- Description
- An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[].values[]
- Type
string
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields
- Description
- A list of node selector requirements by node's fields.
- Type
array
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[]
- Description
- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values
- Description
- An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[].values[]
- Type
string
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
- Description
- If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
- Type
object- Required
nodeSelectorTerms
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
- Description
- Required. A list of node selector terms. The terms are ORed.
- Type
array
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[]
- Description
- A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
- Type
object
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions
- Description
- A list of node selector requirements by node's labels.
- Type
array
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[]
- Description
- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values
- Description
- An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[].values[]
- Type
string
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields
- Description
- A list of node selector requirements by node's fields.
- Type
array
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[]
- Description
- A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values
- Description
- An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[].values[]
- Type
string
.spec.affinity.podAffinity
- Description
- Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
- Type
object
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution
- Description
- The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
- Type
array
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]
- Description
- The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
- Type
object- Required
podAffinityTermweight
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm
- Description
- Required. A pod affinity term, associated with the corresponding weight.
- Type
object- Required
topologyKey
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector
- Description
- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
- Type
object
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions
- Description
- matchExpressions is a list of label selector requirements. The requirements are ANDed.
- Type
array
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]
- Description
- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values
- Description
- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]
- Type
string
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels
- Description
- matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
- Type
object
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys
- Description
- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
- Type
array
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]
- Type
string
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys
- Description
- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
- Type
array
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]
- Type
string
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector
- Description
- A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
- Type
object
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions
- Description
- matchExpressions is a list of label selector requirements. The requirements are ANDed.
- Type
array
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]
- Description
- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values
- Description
- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]
- Type
string
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels
- Description
- matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
- Type
object
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces
- Description
- namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
- Type
array
.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]
- Type
string
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution
- Description
- If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
- Type
array
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[]
- Description
- Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
- Type
object- Required
topologyKey
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector
- Description
- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
- Type
object
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions
- Description
- matchExpressions is a list of label selector requirements. The requirements are ANDed.
- Type
array
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]
- Description
- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values
- Description
- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]
- Type
string
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels
- Description
- matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
- Type
object
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys
- Description
- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
- Type
array
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]
- Type
string
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys
- Description
- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
- Type
array
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]
- Type
string
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector
- Description
- A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
- Type
object
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions
- Description
- matchExpressions is a list of label selector requirements. The requirements are ANDed.
- Type
array
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]
- Description
- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values
- Description
- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]
- Type
string
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels
- Description
- matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
- Type
object
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces
- Description
- namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
- Type
array
.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]
- Type
string
.spec.affinity.podAntiAffinity
- Description
- Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
- Type
object
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
- Description
- The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
- Type
array
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]
- Description
- The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
- Type
object- Required
podAffinityTermweight
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm
- Description
- Required. A pod affinity term, associated with the corresponding weight.
- Type
object- Required
topologyKey
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector
- Description
- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
- Type
object
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions
- Description
- matchExpressions is a list of label selector requirements. The requirements are ANDed.
- Type
array
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[]
- Description
- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values
- Description
- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchExpressions[].values[]
- Type
string
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.labelSelector.matchLabels
- Description
- matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
- Type
object
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys
- Description
- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
- Type
array
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.matchLabelKeys[]
- Type
string
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys
- Description
- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
- Type
array
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.mismatchLabelKeys[]
- Type
string
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector
- Description
- A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
- Type
object
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions
- Description
- matchExpressions is a list of label selector requirements. The requirements are ANDed.
- Type
array
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[]
- Description
- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values
- Description
- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchExpressions[].values[]
- Type
string
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaceSelector.matchLabels
- Description
- matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
- Type
object
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces
- Description
- namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
- Type
array
.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm.namespaces[]
- Type
string
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
- Description
- If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
- Type
array
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]
- Description
- Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running
- Type
object- Required
topologyKey
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector
- Description
- A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.
- Type
object
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions
- Description
- matchExpressions is a list of label selector requirements. The requirements are ANDed.
- Type
array
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]
- Description
- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values
- Description
- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[].values[]
- Type
string
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchLabels
- Description
- matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
- Type
object
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys
- Description
- MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key in (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.
- Type
array
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].matchLabelKeys[]
- Type
string
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys
- Description
- MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with 'labelSelector' as 'key notin (value)' to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.
- Type
array
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].mismatchLabelKeys[]
- Type
string
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector
- Description
- A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
- Type
object
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions
- Description
- matchExpressions is a list of label selector requirements. The requirements are ANDed.
- Type
array
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]
- Description
- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values
- Description
- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
- Type
array
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[].values[]
- Type
string
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchLabels
- Description
- matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
- Type
object
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces
- Description
- namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
- Type
array
.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaces[]
- Type
string
.spec.dnsConfig
- Description
- Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.
- Type
object
.spec.dnsConfig.nameservers
- Description
- A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.
- Type
array
.spec.dnsConfig.nameservers[]
- Type
string
.spec.dnsConfig.options
- Description
- A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.
- Type
array
.spec.dnsConfig.options[]
- Description
- PodDNSConfigOption defines DNS resolver options of a pod.
- Type
object
.spec.dnsConfig.searches
- Description
- A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.
- Type
array
.spec.dnsConfig.searches[]
- Type
string
.spec.domain
- Description
- Specification of the desired behavior of the VirtualMachineInstance on the host.
- Type
object- Required
devices
.spec.domain.chassis
- Description
- Chassis specifies the chassis info passed to the domain.
- Type
object
.spec.domain.clock
- Description
- Clock sets the clock and timers of the vmi.
- Type
object
.spec.domain.clock.timer
- Description
- Timer specifies whih timers are attached to the vmi.
- Type
object
.spec.domain.clock.timer.hpet
- Description
- HPET (High Precision Event Timer) - multiple timers with periodic interrupts.
- Type
object
.spec.domain.clock.timer.hyperv
- Description
- Hyperv (Hypervclock) - lets guests read the host’s wall clock time (paravirtualized). For windows guests.
- Type
object
.spec.domain.clock.timer.kvm
- Description
- KVM (KVM clock) - lets guests read the host’s wall clock time (paravirtualized). For linux guests.
- Type
object
.spec.domain.clock.timer.pit
- Description
- PIT (Programmable Interval Timer) - a timer with periodic interrupts.
- Type
object
.spec.domain.clock.timer.rtc
- Description
- RTC (Real Time Clock) - a continuously running timer with periodic interrupts.
- Type
object
.spec.domain.clock.utc
- Description
- UTC sets the guest clock to UTC on each boot. If an offset is specified, guest changes to the clock will be kept during reboots and are not reset.
- Type
object
.spec.domain.cpu
- Description
- CPU allow specified the detailed CPU topology inside the vmi.
- Type
object
.spec.domain.cpu.features
- Description
- Features specifies the CPU features list inside the VMI.
- Type
array
.spec.domain.cpu.features[]
- Description
- CPUFeature allows specifying a CPU feature.
- Type
object- Required
name
.spec.domain.cpu.numa
- Description
- NUMA allows specifying settings for the guest NUMA topology
- Type
object
.spec.domain.cpu.numa.guestMappingPassthrough
- Description
- GuestMappingPassthrough will create an efficient guest topology based on host CPUs exclusively assigned to a pod. The created topology ensures that memory and CPUs on the virtual numa nodes never cross boundaries of host numa nodes.
- Type
object
.spec.domain.cpu.realtime
- Description
- Realtime instructs the virt-launcher to tune the VMI for lower latency, optional for real time workloads
- Type
object
.spec.domain.devices
- Description
- Devices allows adding disks, network interfaces, and others
- Type
object
.spec.domain.devices.clientPassthrough
- Description
- To configure and access client devices such as redirecting USB
- Type
object
.spec.domain.devices.disks
- Description
- Disks describes disks, cdroms and luns which are connected to the vmi.
- Type
array
.spec.domain.devices.disks[]
- Type
object- Required
name
.spec.domain.devices.disks[].blockSize
- Description
- If specified, the virtual disk will be presented with the given block sizes.
- Type
object
.spec.domain.devices.disks[].blockSize.custom
- Description
- CustomBlockSize represents the desired logical and physical block size for a VM disk.
- Type
object
.spec.domain.devices.disks[].blockSize.matchVolume
- Description
- Represents if a feature is enabled or disabled.
- Type
object
.spec.domain.devices.disks[].cdrom
- Description
- Attach a volume as a cdrom to the vmi.
- Type
object
.spec.domain.devices.disks[].disk
- Description
- Attach a volume as a disk to the vmi.
- Type
object
.spec.domain.devices.disks[].lun
- Description
- Attach a volume as a LUN to the vmi.
- Type
object
.spec.domain.devices.downwardMetrics
- Description
- DownwardMetrics creates a virtio serials for exposing the downward metrics to the vmi.
- Type
object
.spec.domain.devices.filesystems
- Description
- Filesystems describes filesystem which is connected to the vmi.
- Type
array
.spec.domain.devices.filesystems[]
- Type
object- Required
namevirtiofs
.spec.domain.devices.filesystems[].virtiofs
- Description
- Virtiofs is supported
- Type
object
.spec.domain.devices.gpus
- Description
- Whether to attach a GPU device to the vmi.
- Type
array
.spec.domain.devices.gpus[]
- Type
object- Required
name
.spec.domain.devices.gpus[].virtualGPUOptions
- Type
object
.spec.domain.devices.gpus[].virtualGPUOptions.display
- Type
object
.spec.domain.devices.gpus[].virtualGPUOptions.display.ramFB
- Description
- Enables a boot framebuffer, until the guest OS loads a real GPU driver Defaults to true.
- Type
object
.spec.domain.devices.hostDevices
- Description
- Whether to attach a host device to the vmi.
- Type
array
.spec.domain.devices.hostDevices[]
- Type
object- Required
name
.spec.domain.devices.inputs
- Description
- Inputs describe input devices
- Type
array
.spec.domain.devices.inputs[]
- Type
object- Required
nametype
.spec.domain.devices.interfaces
- Description
- Interfaces describe network interfaces which are added to the vmi.
- Type
array
.spec.domain.devices.interfaces[]
- Type
object- Required
name
.spec.domain.devices.interfaces[].binding
- Description
- Binding specifies the binding plugin that will be used to connect the interface to the guest. It provides an alternative to InterfaceBindingMethod. version: 1alphav1
- Type
object- Required
name
.spec.domain.devices.interfaces[].bridge
- Description
- InterfaceBridge connects to a given network via a linux bridge.
- Type
object
.spec.domain.devices.interfaces[].dhcpOptions
- Description
- If specified the network interface will pass additional DHCP options to the VMI
- Type
object
.spec.domain.devices.interfaces[].dhcpOptions.ntpServers
- Description
- If specified will pass the configured NTP server to the VM via DHCP option 042.
- Type
array
.spec.domain.devices.interfaces[].dhcpOptions.ntpServers[]
- Type
string
.spec.domain.devices.interfaces[].dhcpOptions.privateOptions
- Description
- If specified will pass extra DHCP options for private use, range: 224-254
- Type
array
.spec.domain.devices.interfaces[].dhcpOptions.privateOptions[]
- Description
- DHCPExtraOptions defines Extra DHCP options for a VM.
- Type
object- Required
optionvalue
.spec.domain.devices.interfaces[].macvtap
- Description
- DeprecatedMacvtap is an alias to the deprecated Macvtap interface, please refer to Kubevirt user guide for alternatives. Deprecated: Removed in v1.3
- Type
object
.spec.domain.devices.interfaces[].masquerade
- Description
- InterfaceMasquerade connects to a given network using netfilter rules to nat the traffic.
- Type
object
.spec.domain.devices.interfaces[].passt
- Description
- DeprecatedPasst is an alias to the deprecated Passt interface, please refer to Kubevirt user guide for alternatives. Deprecated: Removed in v1.3
- Type
object
.spec.domain.devices.interfaces[].ports
- Description
- List of ports to be forwarded to the virtual machine.
- Type
array
.spec.domain.devices.interfaces[].ports[]
- Description
- Port represents a port to expose from the virtual machine. Default protocol TCP. The port field is mandatory
- Type
object- Required
port
.spec.domain.devices.interfaces[].slirp
- Description
- DeprecatedSlirp is an alias to the deprecated Slirp interface Deprecated: Removed in v1.3
- Type
object
.spec.domain.devices.interfaces[].sriov
- Description
- InterfaceSRIOV connects to a given network by passing-through an SR-IOV PCI device via vfio.
- Type
object
.spec.domain.devices.panicDevices
- Description
- PanicDevices provides additional crash information when a guest crashes.
- Type
array
.spec.domain.devices.panicDevices[]
- Type
object
.spec.domain.devices.rng
- Description
- Whether to have random number generator from host
- Type
object
.spec.domain.devices.sound
- Description
- Whether to emulate a sound device.
- Type
object- Required
name
.spec.domain.devices.tpm
- Description
- Whether to emulate a TPM device.
- Type
object
.spec.domain.devices.video
- Description
- Video describes the video device configuration for the vmi.
- Type
object
.spec.domain.devices.watchdog
- Description
- Watchdog describes a watchdog device which can be added to the vmi.
- Type
object- Required
name
.spec.domain.devices.watchdog.diag288
- Description
- diag288 watchdog device (specific to s390x architecture).
- Type
object
.spec.domain.devices.watchdog.i6300esb
- Description
- i6300esb watchdog device.
- Type
object
.spec.domain.features
- Description
- Features like acpi, apic, hyperv, smm.
- Type
object
.spec.domain.features.acpi
- Description
- ACPI enables/disables ACPI inside the guest. Defaults to enabled.
- Type
object
.spec.domain.features.apic
- Description
- Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv
- Description
- Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.evmcs
- Description
- EVMCS Speeds up L2 vmexits, but disables other virtualization features. Requires vapic. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.frequencies
- Description
- Frequencies improves the TSC clock source handling for Hyper-V on KVM. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.ipi
- Description
- IPI improves performances in overcommited environments. Requires vpindex. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.reenlightenment
- Description
- Reenlightenment enables the notifications on TSC frequency changes. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.relaxed
- Description
- Relaxed instructs the guest OS to disable watchdog timeouts. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.reset
- Description
- Reset enables Hyperv reboot/reset for the vmi. Requires synic. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.runtime
- Description
- Runtime improves the time accounting to improve scheduling in the guest. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.spinlocks
- Description
- Spinlocks allows to configure the spinlock retry attempts.
- Type
object
.spec.domain.features.hyperv.synic
- Description
- SyNIC enables the Synthetic Interrupt Controller. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.synictimer
- Description
- SyNICTimer enables Synthetic Interrupt Controller Timers, reducing CPU load. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.synictimer.direct
- Description
- Represents if a feature is enabled or disabled.
- Type
object
.spec.domain.features.hyperv.tlbflush
- Description
- TLBFlush improves performances in overcommited environments. Requires vpindex. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.vapic
- Description
- VAPIC improves the paravirtualized handling of interrupts. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.vendorid
- Description
- VendorID allows setting the hypervisor vendor id. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hyperv.vpindex
- Description
- VPIndex enables the Virtual Processor Index to help windows identifying virtual processors. Defaults to the machine type setting.
- Type
object
.spec.domain.features.hypervPassthrough
- Description
- This enables all supported hyperv flags automatically. Bear in mind that if this enabled hyperV features cannot be enabled explicitly. In addition, a Virtual Machine using it will be non-migratable.
- Type
object
.spec.domain.features.kvm
- Description
- Configure how KVM presence is exposed to the guest.
- Type
object
.spec.domain.features.pvspinlock
- Description
- Notify the guest that the host supports paravirtual spinlocks. For older kernels this feature should be explicitly disabled.
- Type
object
.spec.domain.features.smm
- Description
- SMM enables/disables System Management Mode. TSEG not yet implemented.
- Type
object
.spec.domain.firmware
- Description
- Firmware.
- Type
object
.spec.domain.firmware.acpi
- Description
- Information that can be set in the ACPI table
- Type
object
.spec.domain.firmware.bootloader
- Description
- Settings to control the bootloader that is used.
- Type
object
.spec.domain.firmware.bootloader.bios
- Description
- If set (default), BIOS will be used.
- Type
object
.spec.domain.firmware.bootloader.efi
- Description
- If set, EFI will be used instead of BIOS.
- Type
object
.spec.domain.firmware.kernelBoot
- Description
- Settings to set the kernel for booting.
- Type
object
.spec.domain.firmware.kernelBoot.container
- Description
- Container defines the container that containes kernel artifacts
- Type
object- Required
image
.spec.domain.ioThreads
- Description
- IOThreads specifies the IOThreads options.
- Type
object
.spec.domain.launchSecurity
- Description
- Launch Security setting of the vmi.
- Type
object
.spec.domain.launchSecurity.sev
- Description
- AMD Secure Encrypted Virtualization (SEV).
- Type
object
.spec.domain.launchSecurity.sev.attestation
- Description
- If specified, run the attestation process for a vmi.
- Type
object
.spec.domain.launchSecurity.sev.policy
- Description
- Guest policy flags as defined in AMD SEV API specification. Note: due to security reasons it is not allowed to enable guest debugging. Therefore NoDebug flag is not exposed to users and is always true.
- Type
object
.spec.domain.launchSecurity.snp
- Description
- AMD SEV-SNP flags defined by the SEV-SNP specifications.
- Type
object
.spec.domain.launchSecurity.tdx
- Description
- Intel Trust Domain Extensions (TDX).
- Type
object
.spec.domain.machine
- Description
- Machine type.
- Type
object
.spec.domain.memory
- Description
- Memory allow specifying the VMI memory features.
- Type
object
.spec.domain.memory.hugepages
- Description
- Hugepages allow to use hugepages for the VirtualMachineInstance instead of regular memory.
- Type
object
.spec.domain.resources
- Description
- Resources describes the Compute Resources required by this vmi.
- Type
object
.spec.domain.resources.limits
- Description
- Limits describes the maximum amount of compute resources allowed. Valid resource keys are "memory" and "cpu".
- Type
object
.spec.domain.resources.requests
- Description
- Requests is a description of the initial vmi resources. Valid resource keys are "memory" and "cpu".
- Type
object
.spec.livenessProbe
- Description
- Periodic probe of VirtualMachineInstance liveness. VirtualmachineInstances will be stopped if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
- Type
object
.spec.livenessProbe.exec
- Description
- One and only one of the following should be specified. Exec specifies the action to take, it will be executed on the guest through the qemu-guest-agent. If the guest agent is not available, this probe will fail.
- Type
object
.spec.livenessProbe.exec.command
- Description
- Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
- Type
array
.spec.livenessProbe.exec.command[]
- Type
string
.spec.livenessProbe.guestAgentPing
- Description
- GuestAgentPing contacts the qemu-guest-agent for availability checks.
- Type
object
.spec.livenessProbe.httpGet
- Description
- HTTPGet specifies the http request to perform.
- Type
object- Required
port
.spec.livenessProbe.httpGet.httpHeaders
- Description
- Custom headers to set in the request. HTTP allows repeated headers.
- Type
array
.spec.livenessProbe.httpGet.httpHeaders[]
- Description
- HTTPHeader describes a custom header to be used in HTTP probes
- Type
object- Required
namevalue
.spec.livenessProbe.tcpSocket
- Description
- TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported
- Type
object- Required
port
.spec.networks
- Description
- List of networks that can be attached to a vm's virtual interface.
- Type
array
.spec.networks[]
- Description
- Network represents a network type and a resource that should be connected to the vm.
- Type
object- Required
name
.spec.networks[].multus
- Description
- Represents the multus cni network.
- Type
object- Required
networkName
.spec.networks[].pod
- Description
- Represents the stock pod network interface.
- Type
object
.spec.nodeSelector
- Description
- NodeSelector is a selector which must be true for the vmi to fit on a node. Selector which must match a node's labels for the vmi to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
- Type
object
.spec.readinessProbe
- Description
- Periodic probe of VirtualMachineInstance service readiness. VirtualmachineInstances will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
- Type
object
.spec.readinessProbe.exec
- Description
- One and only one of the following should be specified. Exec specifies the action to take, it will be executed on the guest through the qemu-guest-agent. If the guest agent is not available, this probe will fail.
- Type
object
.spec.readinessProbe.exec.command
- Description
- Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
- Type
array
.spec.readinessProbe.exec.command[]
- Type
string
.spec.readinessProbe.guestAgentPing
- Description
- GuestAgentPing contacts the qemu-guest-agent for availability checks.
- Type
object
.spec.readinessProbe.httpGet
- Description
- HTTPGet specifies the http request to perform.
- Type
object- Required
port
.spec.readinessProbe.httpGet.httpHeaders
- Description
- Custom headers to set in the request. HTTP allows repeated headers.
- Type
array
.spec.readinessProbe.httpGet.httpHeaders[]
- Description
- HTTPHeader describes a custom header to be used in HTTP probes
- Type
object- Required
namevalue
.spec.readinessProbe.tcpSocket
- Description
- TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported
- Type
object- Required
port
.spec.resourceClaims
- Description
- ResourceClaims define which ResourceClaims must be allocated and reserved before the VMI, hence virt-launcher pod is allowed to start. The resources will be made available to the domain which consumes them by name. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate in kubernetes https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/ This field should only be configured if one of the feature-gates GPUsWithDRA or HostDevicesWithDRA is enabled. This feature is in alpha.
- Type
array
.spec.resourceClaims[]
- Description
- PodResourceClaim references exactly one ResourceClaim, either directly or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim for the pod. It adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.
- Type
object- Required
name
.spec.tolerations
- Description
- If toleration is specified, obey all the toleration rules.
- Type
array
.spec.tolerations[]
- Description
- The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
- Type
object
.spec.topologySpreadConstraints
- Description
- TopologySpreadConstraints describes how a group of VMIs will be spread across a given topology domains. K8s scheduler will schedule VMI pods in a way which abides by the constraints.
- Type
array
.spec.topologySpreadConstraints[]
- Description
- TopologySpreadConstraint specifies how to spread matching pods among the given topology.
- Type
object- Required
maxSkewtopologyKeywhenUnsatisfiable
.spec.topologySpreadConstraints[].labelSelector
- Description
- LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.
- Type
object
.spec.topologySpreadConstraints[].labelSelector.matchExpressions
- Description
- matchExpressions is a list of label selector requirements. The requirements are ANDed.
- Type
array
.spec.topologySpreadConstraints[].labelSelector.matchExpressions[]
- Description
- A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
- Type
object- Required
keyoperator
.spec.topologySpreadConstraints[].labelSelector.matchExpressions[].values
- Description
- values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
- Type
array
.spec.topologySpreadConstraints[].labelSelector.matchExpressions[].values[]
- Type
string
.spec.topologySpreadConstraints[].labelSelector.matchLabels
- Description
- matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
- Type
object
.spec.topologySpreadConstraints[].matchLabelKeys
- Description
- MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).
- Type
array
.spec.topologySpreadConstraints[].matchLabelKeys[]
- Type
string
.spec.volumes
- Description
- List of volumes that can be mounted by disks belonging to the vmi.
- Type
array
.spec.volumes[]
- Description
- Volume represents a named volume in a vmi.
- Type
object- Required
name
.spec.volumes[].cloudInitConfigDrive
- Description
- CloudInitConfigDrive represents a cloud-init Config Drive user-data source. The Config Drive data will be added as a disk to the vmi. A proper cloud-init installation is required inside the guest. More info: https://cloudinit.readthedocs.io/en/latest/topics/datasources/configdrive.html
- Type
object
.spec.volumes[].cloudInitConfigDrive.networkDataSecretRef
- Description
- NetworkDataSecretRef references a k8s secret that contains config drive networkdata.
- Type
object
.spec.volumes[].cloudInitConfigDrive.secretRef
- Description
- UserDataSecretRef references a k8s secret that contains config drive userdata.
- Type
object
.spec.volumes[].cloudInitNoCloud
- Description
- CloudInitNoCloud represents a cloud-init NoCloud user-data source. The NoCloud data will be added as a disk to the vmi. A proper cloud-init installation is required inside the guest. More info: http://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html
- Type
object
.spec.volumes[].cloudInitNoCloud.networkDataSecretRef
- Description
- NetworkDataSecretRef references a k8s secret that contains NoCloud networkdata.
- Type
object
.spec.volumes[].cloudInitNoCloud.secretRef
- Description
- UserDataSecretRef references a k8s secret that contains NoCloud userdata.
- Type
object
.spec.volumes[].configMap
- Description
- ConfigMapSource represents a reference to a ConfigMap in the same namespace. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/
- Type
object
.spec.volumes[].containerDisk
- Description
- ContainerDisk references a docker image, embedding a qcow or raw disk. More info: https://kubevirt.gitbooks.io/user-guide/registry-disk.html
- Type
object- Required
image
.spec.volumes[].dataVolume
- Description
- DataVolume represents the dynamic creation a PVC for this volume as well as the process of populating that PVC with a disk image.
- Type
object- Required
name
.spec.volumes[].downwardAPI
- Description
- DownwardAPI represents downward API about the pod that should populate this volume
- Type
object
.spec.volumes[].downwardAPI.fields
- Description
- Fields is a list of downward API volume file
- Type
array
.spec.volumes[].downwardAPI.fields[]
- Description
- DownwardAPIVolumeFile represents information to create the file containing the pod field
- Type
object- Required
path
.spec.volumes[].downwardAPI.fields[].fieldRef
- Description
- Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.
- Type
object- Required
fieldPath
.spec.volumes[].downwardAPI.fields[].resourceFieldRef
- Description
- Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
- Type
object- Required
resource
.spec.volumes[].downwardMetrics
- Description
- DownwardMetrics adds a very small disk to VMIs which contains a limited view of host and guest metrics. The disk content is compatible with vhostmd (https://github.com/vhostmd/vhostmd) and vm-dump-metrics.
- Type
object
.spec.volumes[].emptyDisk
- Description
- EmptyDisk represents a temporary disk which shares the vmis lifecycle. More info: https://kubevirt.gitbooks.io/user-guide/disks-and-volumes.html
- Type
object- Required
capacity
.spec.volumes[].ephemeral
- Description
- Ephemeral is a special volume source that "wraps" specified source and provides copy-on-write image on top of it.
- Type
object
.spec.volumes[].ephemeral.persistentVolumeClaim
- Description
- PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. Directly attached to the vmi via qemu. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
- Type
object- Required
claimName
.spec.volumes[].hostDisk
- Description
- HostDisk represents a disk created on the cluster level
- Type
object- Required
pathtype
.spec.volumes[].memoryDump
- Description
- MemoryDump is attached to the virt launcher and is populated with a memory dump of the vmi
- Type
object- Required
claimName
.spec.volumes[].persistentVolumeClaim
- Description
- PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. Directly attached to the vmi via qemu. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
- Type
object- Required
claimName
.spec.volumes[].secret
- Description
- SecretVolumeSource represents a reference to a secret data in the same namespace. More info: https://kubernetes.io/docs/concepts/configuration/secret/
- Type
object
.spec.volumes[].serviceAccount
- Description
- ServiceAccountVolumeSource represents a reference to a service account. There can only be one volume of this type! More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
- Type
object
.spec.volumes[].sysprep
- Description
- Represents a Sysprep volume source.
- Type
object
.spec.volumes[].sysprep.configMap
- Description
- ConfigMap references a ConfigMap that contains Sysprep answer file named autounattend.xml that should be attached as disk of CDROM type.
- Type
object
.spec.volumes[].sysprep.secret
- Description
- Secret references a k8s Secret that contains Sysprep answer file named autounattend.xml that should be attached as disk of CDROM type.
- Type
object
.status
- Description
- Status is the high level overview of how the VirtualMachineInstance is doing. It contains information available to controllers and users.
- Type
object
.status.activePods
- Description
- ActivePods is a mapping of pod UID to node name. It is possible for multiple pods to be running for a single VMI during migration.
- Type
object
.status.changedBlockTracking
- Description
- ChangedBlockTracking represents the status of the changedBlockTracking
- Type
object- Required
state
.status.conditions
- Description
- Conditions are specific points in VirtualMachineInstance's pod runtime.
- Type
array
.status.conditions[]
- Type
object- Required
statustype
.status.currentCPUTopology
- Description
- CurrentCPUTopology specifies the current CPU topology used by the VM workload. Current topology may differ from the desired topology in the spec while CPU hotplug takes place.
- Type
object
.status.deviceStatus
- Description
- DeviceStatus reflects the state of devices requested in spec.domain.devices. This is an optional field available only when DRA feature gate is enabled This field will only be populated if one of the feature-gates GPUsWithDRA or HostDevicesWithDRA is enabled. This feature is in alpha.
- Type
object
.status.deviceStatus.gpuStatuses
- Description
- GPUStatuses reflects the state of GPUs requested in spec.domain.devices.gpus
- Type
array
.status.deviceStatus.gpuStatuses[]
- Type
object- Required
name
.status.deviceStatus.gpuStatuses[].deviceResourceClaimStatus
- Description
- DeviceResourceClaimStatus reflects the DRA related information for the device
- Type
object
.status.deviceStatus.gpuStatuses[].deviceResourceClaimStatus.attributes
- Description
- Attributes are properties of the device that could be used by kubevirt and other copmonents to learn more about the device, like pciAddress or mdevUUID
- Type
object
.status.deviceStatus.hostDeviceStatuses
- Description
- HostDeviceStatuses reflects the state of GPUs requested in spec.domain.devices.hostDevices DRA
- Type
array
.status.deviceStatus.hostDeviceStatuses[]
- Type
object- Required
name
.status.deviceStatus.hostDeviceStatuses[].deviceResourceClaimStatus
- Description
- DeviceResourceClaimStatus reflects the DRA related information for the device
- Type
object
.status.deviceStatus.hostDeviceStatuses[].deviceResourceClaimStatus.attributes
- Description
- Attributes are properties of the device that could be used by kubevirt and other copmonents to learn more about the device, like pciAddress or mdevUUID
- Type
object
.status.guestOSInfo
- Description
- Guest OS Information
- Type
object
.status.interfaces
- Description
- Interfaces represent the details of available network interfaces.
- Type
array
.status.interfaces[]
- Type
object
.status.interfaces[].ipAddresses
- Description
- List of all IP addresses of a Virtual Machine interface
- Type
array
.status.interfaces[].ipAddresses[]
- Type
string
.status.kernelBootStatus
- Description
- KernelBootStatus contains info about the kernelBootContainer
- Type
object
.status.kernelBootStatus.initrdInfo
- Description
- InitrdInfo show info about the initrd file
- Type
object
.status.kernelBootStatus.kernelInfo
- Description
- KernelInfo show info about the kernel image
- Type
object
.status.machine
- Description
- Machine shows the final resulting qemu machine type. This can be different than the machine type selected in the spec, due to qemus machine type alias mechanism.
- Type
object
.status.memory
- Description
- Memory shows various informations about the VirtualMachine memory.
- Type
object
.status.migratedVolumes
- Description
- MigratedVolumes lists the source and destination volumes during the volume migration
- Type
array
.status.migratedVolumes[]
- Description
- StorageMigratedVolumeInfo tracks the information about the source and destination volumes during the volume migration
- Type
object- Required
volumeName
.status.migratedVolumes[].destinationPVCInfo
- Description
- DestinationPVCInfo contains the information about the destination PVC
- Type
object
.status.migratedVolumes[].destinationPVCInfo.accessModes
- Description
- AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
- Type
array
.status.migratedVolumes[].destinationPVCInfo.accessModes[]
- Type
string
.status.migratedVolumes[].destinationPVCInfo.capacity
- Description
- Capacity represents the capacity set on the corresponding PVC status
- Type
object
.status.migratedVolumes[].destinationPVCInfo.requests
- Description
- Requests represents the resources requested by the corresponding PVC spec
- Type
object
.status.migratedVolumes[].sourcePVCInfo
- Description
- SourcePVCInfo contains the information about the source PVC
- Type
object
.status.migratedVolumes[].sourcePVCInfo.accessModes
- Description
- AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
- Type
array
.status.migratedVolumes[].sourcePVCInfo.accessModes[]
- Type
string
.status.migratedVolumes[].sourcePVCInfo.capacity
- Description
- Capacity represents the capacity set on the corresponding PVC status
- Type
object
.status.migratedVolumes[].sourcePVCInfo.requests
- Description
- Requests represents the resources requested by the corresponding PVC spec
- Type
object
.status.migrationState
- Description
- Represents the status of a live migration
- Type
object
.status.migrationState.migrationConfiguration
- Description
- Migration configurations to apply
- Type
object
.status.migrationState.sourceState
- Description
- SourceState contains migration state managed by the source virt handler
- Type
object
.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
.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
- VirtualMachineInstancePhaseTransitionTimestamp gives a timestamp in relation to when a phase is set on a vmi
- Type
object
.status.topologyHints
- Type
object
.status.volumeStatus
- Description
- VolumeStatus contains the statuses of all the volumes
- Type
array
.status.volumeStatus[]
- Description
- VolumeStatus represents information about the status of volumes attached to the VirtualMachineInstance.
- Type
object- Required
nametarget
.status.volumeStatus[].containerDiskVolume
- Description
- ContainerDiskVolume shows info about the containerdisk, if the volume is a containerdisk
- Type
object
.status.volumeStatus[].hotplugVolume
- Description
- If the volume is hotplug, this will contain the hotplug status.
- Type
object
.status.volumeStatus[].memoryDumpVolume
- Description
- If the volume is memorydump volume, this will contain the memorydump info.
- Type
object
.status.volumeStatus[].persistentVolumeClaimInfo
- Description
- PersistentVolumeClaimInfo is information about the PVC that handler requires during start flow
- Type
object
.status.volumeStatus[].persistentVolumeClaimInfo.accessModes
- Description
- AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
- Type
array
.status.volumeStatus[].persistentVolumeClaimInfo.accessModes[]
- Type
string
.status.volumeStatus[].persistentVolumeClaimInfo.capacity
- Description
- Capacity represents the capacity set on the corresponding PVC status
- Type
object
.status.volumeStatus[].persistentVolumeClaimInfo.requests
- Description
- Requests represents the resources requested by the corresponding PVC spec
- Type
object
API Endpoints
The following API endpoints are available:
/apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstancesDELETE: delete collection of VirtualMachineInstanceGET: list objects of kind VirtualMachineInstancePOST: create a new VirtualMachineInstance
/apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstances/{name}DELETE: delete the specified VirtualMachineInstanceGET: read the specified VirtualMachineInstancePATCH: partially update the specified VirtualMachineInstancePUT: replace the specified VirtualMachineInstance
/apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstances/{name}/statusGET: read status of the specified VirtualMachineInstancePATCH: partially update status of the specified VirtualMachineInstancePUT: replace status of the specified VirtualMachineInstance
/apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstances
- HTTP method
DELETE- Description
- delete collection of VirtualMachineInstance
- HTTP responses
- HTTP method
GET- Description
- list objects of kind VirtualMachineInstance
- HTTP responses
- HTTP method
POST- Description
- create a new VirtualMachineInstance
- Query parameters
- Body parameters
- HTTP responses
/apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstances/{name}
- HTTP method
DELETE- Description
- delete the specified VirtualMachineInstance
- Query parameters
- HTTP responses
- HTTP method
GET- Description
- read the specified VirtualMachineInstance
- HTTP responses
- HTTP method
PATCH- Description
- partially update the specified VirtualMachineInstance
- Query parameters
- HTTP responses
- HTTP method
PUT- Description
- replace the specified VirtualMachineInstance
- Query parameters
- Body parameters
- HTTP responses
/apis/kubevirt.io/v1/namespaces/{namespace}/virtualmachineinstances/{name}/status
- HTTP method
GET- Description
- read status of the specified VirtualMachineInstance
- HTTP responses
- HTTP method
PATCH- Description
- partially update status of the specified VirtualMachineInstance
- Query parameters
- HTTP responses
- HTTP method
PUT- Description
- replace status of the specified VirtualMachineInstance
- Query parameters
- Body parameters
- HTTP responses