...

Text file src/edge-infra.dev/test/fixtures/crds/kubevirt/virtualmachineinstances.kubevirt.io.yaml

Documentation: edge-infra.dev/test/fixtures/crds/kubevirt

     1apiVersion: apiextensions.k8s.io/v1
     2kind: CustomResourceDefinition
     3metadata:
     4  name: virtualmachineinstances.kubevirt.io
     5  labels:
     6    app.kubernetes.io/component: kubevirt
     7    app.kubernetes.io/managed-by: virt-operator
     8    kubevirt.io: ""
     9  annotations:
    10    kubevirt.io/generation: "3"
    11    kubevirt.io/install-strategy-identifier: d07de36ca46d4e186982d4a128be84f720815c45
    12    kubevirt.io/install-strategy-registry: us-east1-docker.pkg.dev/ret-edge-pltf-infra/thirdparty/quay.io/kubevirt
    13    kubevirt.io/install-strategy-version: v1.1.0
    14  generation: 1
    15spec:
    16  conversion:
    17    strategy: None
    18  group: kubevirt.io
    19  names:
    20    kind: VirtualMachineInstance
    21    categories:
    22    - all
    23    listKind: VirtualMachineInstanceList
    24    plural: virtualmachineinstances
    25    shortNames:
    26    - vmi
    27    - vmis
    28    singular: virtualmachineinstance
    29  scope: Namespaced
    30  versions:
    31  - name: v1
    32    additionalPrinterColumns:
    33    - name: Age
    34      type: date
    35      jsonPath: .metadata.creationTimestamp
    36    - name: Phase
    37      type: string
    38      jsonPath: .status.phase
    39    - name: IP
    40      type: string
    41      jsonPath: .status.interfaces[0].ipAddress
    42    - name: NodeName
    43      type: string
    44      jsonPath: .status.nodeName
    45    - name: Ready
    46      type: string
    47      jsonPath: .status.conditions[?(@.type=='Ready')].status
    48    - name: Live-Migratable
    49      type: string
    50      priority: 1
    51      jsonPath: .status.conditions[?(@.type=='LiveMigratable')].status
    52    - name: Paused
    53      type: string
    54      priority: 1
    55      jsonPath: .status.conditions[?(@.type=='Paused')].status
    56    schema:
    57      openAPIV3Schema:
    58        type: object
    59        description: VirtualMachineInstance is *the* VirtualMachineInstance Definition. It represents a virtual machine in the runtime environment of kubernetes.
    60        properties:
    61          apiVersion:
    62            type: string
    63            description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    64          kind:
    65            type: string
    66            description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    67          metadata:
    68            type: object
    69          spec:
    70            type: object
    71            description: VirtualMachineInstance Spec contains the VirtualMachineInstance specification.
    72            properties:
    73              terminationGracePeriodSeconds:
    74                type: integer
    75                description: Grace period observed after signalling a VirtualMachineInstance to stop after which the VirtualMachineInstance is force terminated.
    76                format: int64
    77              dnsPolicy:
    78                type: string
    79                description: Set DNS policy for the pod. Defaults to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.
    80              hostname:
    81                type: string
    82                description: Specifies the hostname of the vmi If not specified, the hostname will be set to the name of the vmi, if dhcp or cloud-init is configured properly.
    83              subdomain:
    84                type: string
    85                description: If specified, the fully qualified vmi hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>". If not specified, the vmi will not have a domainname at all. The DNS entry will resolve to the vmi, no matter if the vmi itself can pick up a hostname.
    86              schedulerName:
    87                type: string
    88                description: If specified, the VMI will be dispatched by specified scheduler. If not specified, the VMI will be dispatched by default scheduler.
    89              priorityClassName:
    90                type: string
    91                description: If specified, indicates the pod's priority. If not specified, the pod priority will be default or zero if there is no default.
    92              nodeSelector:
    93                type: object
    94                additionalProperties:
    95                  type: string
    96                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/'
    97              volumes:
    98                type: array
    99                description: List of volumes that can be mounted by disks belonging to the vmi.
   100                items:
   101                  type: object
   102                  description: Volume represents a named volume in a vmi.
   103                  properties:
   104                    name:
   105                      type: string
   106                      description: 'Volume''s name. Must be a DNS_LABEL and unique within the vmi. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   107                    serviceAccount:
   108                      type: object
   109                      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/'
   110                      properties:
   111                        serviceAccountName:
   112                          type: string
   113                          description: 'Name of the service account in the pod''s namespace to use. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/'
   114                    cloudInitConfigDrive:
   115                      type: object
   116                      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'
   117                      properties:
   118                        secretRef:
   119                          type: object
   120                          description: UserDataSecretRef references a k8s secret that contains config drive userdata.
   121                          properties:
   122                            name:
   123                              type: string
   124                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   125                        networkData:
   126                          type: string
   127                          description: NetworkData contains config drive inline cloud-init networkdata.
   128                        networkDataBase64:
   129                          type: string
   130                          description: NetworkDataBase64 contains config drive cloud-init networkdata as a base64 encoded string.
   131                        networkDataSecretRef:
   132                          type: object
   133                          description: NetworkDataSecretRef references a k8s secret that contains config drive networkdata.
   134                          properties:
   135                            name:
   136                              type: string
   137                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   138                        userData:
   139                          type: string
   140                          description: UserData contains config drive inline cloud-init userdata.
   141                        userDataBase64:
   142                          type: string
   143                          description: UserDataBase64 contains config drive cloud-init userdata as a base64 encoded string.
   144                    cloudInitNoCloud:
   145                      type: object
   146                      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'
   147                      properties:
   148                        secretRef:
   149                          type: object
   150                          description: UserDataSecretRef references a k8s secret that contains NoCloud userdata.
   151                          properties:
   152                            name:
   153                              type: string
   154                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   155                        networkData:
   156                          type: string
   157                          description: NetworkData contains NoCloud inline cloud-init networkdata.
   158                        networkDataBase64:
   159                          type: string
   160                          description: NetworkDataBase64 contains NoCloud cloud-init networkdata as a base64 encoded string.
   161                        networkDataSecretRef:
   162                          type: object
   163                          description: NetworkDataSecretRef references a k8s secret that contains NoCloud networkdata.
   164                          properties:
   165                            name:
   166                              type: string
   167                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   168                        userData:
   169                          type: string
   170                          description: UserData contains NoCloud inline cloud-init userdata.
   171                        userDataBase64:
   172                          type: string
   173                          description: UserDataBase64 contains NoCloud cloud-init userdata as a base64 encoded string.
   174                    configMap:
   175                      type: object
   176                      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/'
   177                      properties:
   178                        name:
   179                          type: string
   180                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   181                        optional:
   182                          type: boolean
   183                          description: Specify whether the ConfigMap or it's keys must be defined
   184                        volumeLabel:
   185                          type: string
   186                          description: The volume label of the resulting disk inside the VMI. Different bootstrapping mechanisms require different values. Typical values are "cidata" (cloud-init), "config-2" (cloud-init) or "OEMDRV" (kickstart).
   187                    containerDisk:
   188                      type: object
   189                      description: 'ContainerDisk references a docker image, embedding a qcow or raw disk. More info: https://kubevirt.gitbooks.io/user-guide/registry-disk.html'
   190                      properties:
   191                        image:
   192                          type: string
   193                          description: Image is the name of the image with the embedded disk.
   194                        imagePullPolicy:
   195                          type: string
   196                          description: 'Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
   197                        imagePullSecret:
   198                          type: string
   199                          description: ImagePullSecret is the name of the Docker registry secret required to pull the image. The secret must already exist.
   200                        path:
   201                          type: string
   202                          description: Path defines the path to disk file in the container
   203                      required:
   204                      - image
   205                    dataVolume:
   206                      type: object
   207                      description: DataVolume represents the dynamic creation a PVC for this volume as well as the process of populating that PVC with a disk image.
   208                      properties:
   209                        name:
   210                          type: string
   211                          description: Name of both the DataVolume and the PVC in the same namespace. After PVC population the DataVolume is garbage collected by default.
   212                        hotpluggable:
   213                          type: boolean
   214                          description: Hotpluggable indicates whether the volume can be hotplugged and hotunplugged.
   215                      required:
   216                      - name
   217                    downwardAPI:
   218                      type: object
   219                      description: DownwardAPI represents downward API about the pod that should populate this volume
   220                      properties:
   221                        fields:
   222                          type: array
   223                          description: Fields is a list of downward API volume file
   224                          items:
   225                            type: object
   226                            description: DownwardAPIVolumeFile represents information to create the file containing the pod field
   227                            properties:
   228                              fieldRef:
   229                                type: object
   230                                description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
   231                                properties:
   232                                  apiVersion:
   233                                    type: string
   234                                    description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
   235                                  fieldPath:
   236                                    type: string
   237                                    description: Path of the field to select in the specified API version.
   238                                required:
   239                                - fieldPath
   240                              resourceFieldRef:
   241                                type: object
   242                                description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
   243                                properties:
   244                                  containerName:
   245                                    type: string
   246                                    description: 'Container name: required for volumes, optional for env vars'
   247                                  divisor:
   248                                    anyOf:
   249                                    - type: integer
   250                                    - type: string
   251                                    description: Specifies the output format of the exposed resources, defaults to "1"
   252                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   253                                    x-kubernetes-int-or-string: true
   254                                  resource:
   255                                    type: string
   256                                    description: 'Required: resource to select'
   257                                required:
   258                                - resource
   259                              mode:
   260                                type: integer
   261                                description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
   262                                format: int32
   263                              path:
   264                                type: string
   265                                description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
   266                            required:
   267                            - path
   268                        volumeLabel:
   269                          type: string
   270                          description: The volume label of the resulting disk inside the VMI. Different bootstrapping mechanisms require different values. Typical values are "cidata" (cloud-init), "config-2" (cloud-init) or "OEMDRV" (kickstart).
   271                    downwardMetrics:
   272                      type: object
   273                      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.
   274                    emptyDisk:
   275                      type: object
   276                      description: 'EmptyDisk represents a temporary disk which shares the vmis lifecycle. More info: https://kubevirt.gitbooks.io/user-guide/disks-and-volumes.html'
   277                      properties:
   278                        capacity:
   279                          anyOf:
   280                          - type: integer
   281                          - type: string
   282                          description: Capacity of the sparse disk.
   283                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   284                          x-kubernetes-int-or-string: true
   285                      required:
   286                      - capacity
   287                    ephemeral:
   288                      type: object
   289                      description: Ephemeral is a special volume source that "wraps" specified source and provides copy-on-write image on top of it.
   290                      properties:
   291                        persistentVolumeClaim:
   292                          type: object
   293                          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'
   294                          properties:
   295                            readOnly:
   296                              type: boolean
   297                              description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
   298                            claimName:
   299                              type: string
   300                              description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
   301                          required:
   302                          - claimName
   303                    hostDisk:
   304                      type: object
   305                      description: HostDisk represents a disk created on the cluster level
   306                      properties:
   307                        type:
   308                          type: string
   309                          description: Contains information if disk.img exists or should be created allowed options are 'Disk' and 'DiskOrCreate'
   310                        capacity:
   311                          anyOf:
   312                          - type: integer
   313                          - type: string
   314                          description: Capacity of the sparse disk
   315                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
   316                          x-kubernetes-int-or-string: true
   317                        path:
   318                          type: string
   319                          description: The path to HostDisk image located on the cluster
   320                        shared:
   321                          type: boolean
   322                          description: Shared indicate whether the path is shared between nodes
   323                      required:
   324                      - path
   325                      - type
   326                    memoryDump:
   327                      type: object
   328                      description: MemoryDump is attached to the virt launcher and is populated with a memory dump of the vmi
   329                      properties:
   330                        readOnly:
   331                          type: boolean
   332                          description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
   333                        claimName:
   334                          type: string
   335                          description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
   336                        hotpluggable:
   337                          type: boolean
   338                          description: Hotpluggable indicates whether the volume can be hotplugged and hotunplugged.
   339                      required:
   340                      - claimName
   341                    persistentVolumeClaim:
   342                      type: object
   343                      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'
   344                      properties:
   345                        readOnly:
   346                          type: boolean
   347                          description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
   348                        claimName:
   349                          type: string
   350                          description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
   351                        hotpluggable:
   352                          type: boolean
   353                          description: Hotpluggable indicates whether the volume can be hotplugged and hotunplugged.
   354                      required:
   355                      - claimName
   356                    secret:
   357                      type: object
   358                      description: 'SecretVolumeSource represents a reference to a secret data in the same namespace. More info: https://kubernetes.io/docs/concepts/configuration/secret/'
   359                      properties:
   360                        optional:
   361                          type: boolean
   362                          description: Specify whether the Secret or it's keys must be defined
   363                        secretName:
   364                          type: string
   365                          description: 'Name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
   366                        volumeLabel:
   367                          type: string
   368                          description: The volume label of the resulting disk inside the VMI. Different bootstrapping mechanisms require different values. Typical values are "cidata" (cloud-init), "config-2" (cloud-init) or "OEMDRV" (kickstart).
   369                    sysprep:
   370                      type: object
   371                      description: Represents a Sysprep volume source.
   372                      properties:
   373                        configMap:
   374                          type: object
   375                          description: ConfigMap references a ConfigMap that contains Sysprep answer file named autounattend.xml that should be attached as disk of CDROM type.
   376                          properties:
   377                            name:
   378                              type: string
   379                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   380                        secret:
   381                          type: object
   382                          description: Secret references a k8s Secret that contains Sysprep answer file named autounattend.xml that should be attached as disk of CDROM type.
   383                          properties:
   384                            name:
   385                              type: string
   386                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
   387                  required:
   388                  - name
   389              affinity:
   390                type: object
   391                description: If affinity is specifies, obey all the affinity rules
   392                properties:
   393                  nodeAffinity:
   394                    type: object
   395                    description: Describes node affinity scheduling rules for the pod.
   396                    properties:
   397                      preferredDuringSchedulingIgnoredDuringExecution:
   398                        type: array
   399                        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.
   400                        items:
   401                          type: object
   402                          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).
   403                          properties:
   404                            preference:
   405                              type: object
   406                              description: A node selector term, associated with the corresponding weight.
   407                              properties:
   408                                matchExpressions:
   409                                  type: array
   410                                  description: A list of node selector requirements by node's labels.
   411                                  items:
   412                                    type: object
   413                                    description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   414                                    properties:
   415                                      key:
   416                                        type: string
   417                                        description: The label key that the selector applies to.
   418                                      operator:
   419                                        type: string
   420                                        description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
   421                                      values:
   422                                        type: array
   423                                        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.
   424                                        items:
   425                                          type: string
   426                                    required:
   427                                    - key
   428                                    - operator
   429                                matchFields:
   430                                  type: array
   431                                  description: A list of node selector requirements by node's fields.
   432                                  items:
   433                                    type: object
   434                                    description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   435                                    properties:
   436                                      key:
   437                                        type: string
   438                                        description: The label key that the selector applies to.
   439                                      operator:
   440                                        type: string
   441                                        description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
   442                                      values:
   443                                        type: array
   444                                        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.
   445                                        items:
   446                                          type: string
   447                                    required:
   448                                    - key
   449                                    - operator
   450                            weight:
   451                              type: integer
   452                              description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
   453                              format: int32
   454                          required:
   455                          - preference
   456                          - weight
   457                      requiredDuringSchedulingIgnoredDuringExecution:
   458                        type: object
   459                        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.
   460                        properties:
   461                          nodeSelectorTerms:
   462                            type: array
   463                            description: Required. A list of node selector terms. The terms are ORed.
   464                            items:
   465                              type: object
   466                              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.
   467                              properties:
   468                                matchExpressions:
   469                                  type: array
   470                                  description: A list of node selector requirements by node's labels.
   471                                  items:
   472                                    type: object
   473                                    description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   474                                    properties:
   475                                      key:
   476                                        type: string
   477                                        description: The label key that the selector applies to.
   478                                      operator:
   479                                        type: string
   480                                        description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
   481                                      values:
   482                                        type: array
   483                                        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.
   484                                        items:
   485                                          type: string
   486                                    required:
   487                                    - key
   488                                    - operator
   489                                matchFields:
   490                                  type: array
   491                                  description: A list of node selector requirements by node's fields.
   492                                  items:
   493                                    type: object
   494                                    description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   495                                    properties:
   496                                      key:
   497                                        type: string
   498                                        description: The label key that the selector applies to.
   499                                      operator:
   500                                        type: string
   501                                        description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
   502                                      values:
   503                                        type: array
   504                                        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.
   505                                        items:
   506                                          type: string
   507                                    required:
   508                                    - key
   509                                    - operator
   510                        required:
   511                        - nodeSelectorTerms
   512                  podAffinity:
   513                    type: object
   514                    description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
   515                    properties:
   516                      preferredDuringSchedulingIgnoredDuringExecution:
   517                        type: array
   518                        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.
   519                        items:
   520                          type: object
   521                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
   522                          properties:
   523                            podAffinityTerm:
   524                              type: object
   525                              description: Required. A pod affinity term, associated with the corresponding weight.
   526                              properties:
   527                                labelSelector:
   528                                  type: object
   529                                  description: A label query over a set of resources, in this case pods.
   530                                  properties:
   531                                    matchExpressions:
   532                                      type: array
   533                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   534                                      items:
   535                                        type: object
   536                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   537                                        properties:
   538                                          key:
   539                                            type: string
   540                                            description: key is the label key that the selector applies to.
   541                                          operator:
   542                                            type: string
   543                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   544                                          values:
   545                                            type: array
   546                                            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.
   547                                            items:
   548                                              type: string
   549                                        required:
   550                                        - key
   551                                        - operator
   552                                    matchLabels:
   553                                      type: object
   554                                      additionalProperties:
   555                                        type: string
   556                                      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.
   557                                namespaceSelector:
   558                                  type: object
   559                                  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.
   560                                  properties:
   561                                    matchExpressions:
   562                                      type: array
   563                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   564                                      items:
   565                                        type: object
   566                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   567                                        properties:
   568                                          key:
   569                                            type: string
   570                                            description: key is the label key that the selector applies to.
   571                                          operator:
   572                                            type: string
   573                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   574                                          values:
   575                                            type: array
   576                                            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.
   577                                            items:
   578                                              type: string
   579                                        required:
   580                                        - key
   581                                        - operator
   582                                    matchLabels:
   583                                      type: object
   584                                      additionalProperties:
   585                                        type: string
   586                                      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.
   587                                namespaces:
   588                                  type: array
   589                                  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".
   590                                  items:
   591                                    type: string
   592                                topologyKey:
   593                                  type: string
   594                                  description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, 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 any of the selected pods is running. Empty topologyKey is not allowed.
   595                              required:
   596                              - topologyKey
   597                            weight:
   598                              type: integer
   599                              description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
   600                              format: int32
   601                          required:
   602                          - podAffinityTerm
   603                          - weight
   604                      requiredDuringSchedulingIgnoredDuringExecution:
   605                        type: array
   606                        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.
   607                        items:
   608                          type: object
   609                          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
   610                          properties:
   611                            labelSelector:
   612                              type: object
   613                              description: A label query over a set of resources, in this case pods.
   614                              properties:
   615                                matchExpressions:
   616                                  type: array
   617                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   618                                  items:
   619                                    type: object
   620                                    description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   621                                    properties:
   622                                      key:
   623                                        type: string
   624                                        description: key is the label key that the selector applies to.
   625                                      operator:
   626                                        type: string
   627                                        description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   628                                      values:
   629                                        type: array
   630                                        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.
   631                                        items:
   632                                          type: string
   633                                    required:
   634                                    - key
   635                                    - operator
   636                                matchLabels:
   637                                  type: object
   638                                  additionalProperties:
   639                                    type: string
   640                                  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.
   641                            namespaceSelector:
   642                              type: object
   643                              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.
   644                              properties:
   645                                matchExpressions:
   646                                  type: array
   647                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   648                                  items:
   649                                    type: object
   650                                    description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   651                                    properties:
   652                                      key:
   653                                        type: string
   654                                        description: key is the label key that the selector applies to.
   655                                      operator:
   656                                        type: string
   657                                        description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   658                                      values:
   659                                        type: array
   660                                        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.
   661                                        items:
   662                                          type: string
   663                                    required:
   664                                    - key
   665                                    - operator
   666                                matchLabels:
   667                                  type: object
   668                                  additionalProperties:
   669                                    type: string
   670                                  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.
   671                            namespaces:
   672                              type: array
   673                              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".
   674                              items:
   675                                type: string
   676                            topologyKey:
   677                              type: string
   678                              description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, 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 any of the selected pods is running. Empty topologyKey is not allowed.
   679                          required:
   680                          - topologyKey
   681                  podAntiAffinity:
   682                    type: object
   683                    description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
   684                    properties:
   685                      preferredDuringSchedulingIgnoredDuringExecution:
   686                        type: array
   687                        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.
   688                        items:
   689                          type: object
   690                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
   691                          properties:
   692                            podAffinityTerm:
   693                              type: object
   694                              description: Required. A pod affinity term, associated with the corresponding weight.
   695                              properties:
   696                                labelSelector:
   697                                  type: object
   698                                  description: A label query over a set of resources, in this case pods.
   699                                  properties:
   700                                    matchExpressions:
   701                                      type: array
   702                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   703                                      items:
   704                                        type: object
   705                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   706                                        properties:
   707                                          key:
   708                                            type: string
   709                                            description: key is the label key that the selector applies to.
   710                                          operator:
   711                                            type: string
   712                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   713                                          values:
   714                                            type: array
   715                                            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.
   716                                            items:
   717                                              type: string
   718                                        required:
   719                                        - key
   720                                        - operator
   721                                    matchLabels:
   722                                      type: object
   723                                      additionalProperties:
   724                                        type: string
   725                                      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.
   726                                namespaceSelector:
   727                                  type: object
   728                                  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.
   729                                  properties:
   730                                    matchExpressions:
   731                                      type: array
   732                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   733                                      items:
   734                                        type: object
   735                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   736                                        properties:
   737                                          key:
   738                                            type: string
   739                                            description: key is the label key that the selector applies to.
   740                                          operator:
   741                                            type: string
   742                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   743                                          values:
   744                                            type: array
   745                                            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.
   746                                            items:
   747                                              type: string
   748                                        required:
   749                                        - key
   750                                        - operator
   751                                    matchLabels:
   752                                      type: object
   753                                      additionalProperties:
   754                                        type: string
   755                                      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.
   756                                namespaces:
   757                                  type: array
   758                                  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".
   759                                  items:
   760                                    type: string
   761                                topologyKey:
   762                                  type: string
   763                                  description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, 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 any of the selected pods is running. Empty topologyKey is not allowed.
   764                              required:
   765                              - topologyKey
   766                            weight:
   767                              type: integer
   768                              description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
   769                              format: int32
   770                          required:
   771                          - podAffinityTerm
   772                          - weight
   773                      requiredDuringSchedulingIgnoredDuringExecution:
   774                        type: array
   775                        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.
   776                        items:
   777                          type: object
   778                          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
   779                          properties:
   780                            labelSelector:
   781                              type: object
   782                              description: A label query over a set of resources, in this case pods.
   783                              properties:
   784                                matchExpressions:
   785                                  type: array
   786                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   787                                  items:
   788                                    type: object
   789                                    description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   790                                    properties:
   791                                      key:
   792                                        type: string
   793                                        description: key is the label key that the selector applies to.
   794                                      operator:
   795                                        type: string
   796                                        description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   797                                      values:
   798                                        type: array
   799                                        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.
   800                                        items:
   801                                          type: string
   802                                    required:
   803                                    - key
   804                                    - operator
   805                                matchLabels:
   806                                  type: object
   807                                  additionalProperties:
   808                                    type: string
   809                                  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.
   810                            namespaceSelector:
   811                              type: object
   812                              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.
   813                              properties:
   814                                matchExpressions:
   815                                  type: array
   816                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   817                                  items:
   818                                    type: object
   819                                    description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   820                                    properties:
   821                                      key:
   822                                        type: string
   823                                        description: key is the label key that the selector applies to.
   824                                      operator:
   825                                        type: string
   826                                        description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   827                                      values:
   828                                        type: array
   829                                        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.
   830                                        items:
   831                                          type: string
   832                                    required:
   833                                    - key
   834                                    - operator
   835                                matchLabels:
   836                                  type: object
   837                                  additionalProperties:
   838                                    type: string
   839                                  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.
   840                            namespaces:
   841                              type: array
   842                              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".
   843                              items:
   844                                type: string
   845                            topologyKey:
   846                              type: string
   847                              description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, 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 any of the selected pods is running. Empty topologyKey is not allowed.
   848                          required:
   849                          - topologyKey
   850              tolerations:
   851                type: array
   852                description: If toleration is specified, obey all the toleration rules.
   853                items:
   854                  type: object
   855                  description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
   856                  properties:
   857                    value:
   858                      type: string
   859                      description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
   860                    effect:
   861                      type: string
   862                      description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
   863                    key:
   864                      type: string
   865                      description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
   866                    operator:
   867                      type: string
   868                      description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
   869                    tolerationSeconds:
   870                      type: integer
   871                      description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
   872                      format: int64
   873              dnsConfig:
   874                type: object
   875                description: Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.
   876                properties:
   877                  nameservers:
   878                    type: array
   879                    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.
   880                    items:
   881                      type: string
   882                  options:
   883                    type: array
   884                    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.
   885                    items:
   886                      type: object
   887                      description: PodDNSConfigOption defines DNS resolver options of a pod.
   888                      properties:
   889                        name:
   890                          type: string
   891                          description: Required.
   892                        value:
   893                          type: string
   894                  searches:
   895                    type: array
   896                    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.
   897                    items:
   898                      type: string
   899              livenessProbe:
   900                type: object
   901                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'
   902                properties:
   903                  exec:
   904                    type: object
   905                    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.
   906                    properties:
   907                      command:
   908                        type: array
   909                        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.
   910                        items:
   911                          type: string
   912                  failureThreshold:
   913                    type: integer
   914                    description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
   915                    format: int32
   916                  guestAgentPing:
   917                    type: object
   918                    description: GuestAgentPing contacts the qemu-guest-agent for availability checks.
   919                  httpGet:
   920                    type: object
   921                    description: HTTPGet specifies the http request to perform.
   922                    properties:
   923                      port:
   924                        anyOf:
   925                        - type: integer
   926                        - type: string
   927                        description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
   928                        x-kubernetes-int-or-string: true
   929                      host:
   930                        type: string
   931                        description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
   932                      httpHeaders:
   933                        type: array
   934                        description: Custom headers to set in the request. HTTP allows repeated headers.
   935                        items:
   936                          type: object
   937                          description: HTTPHeader describes a custom header to be used in HTTP probes
   938                          properties:
   939                            name:
   940                              type: string
   941                              description: The header field name
   942                            value:
   943                              type: string
   944                              description: The header field value
   945                          required:
   946                          - name
   947                          - value
   948                      path:
   949                        type: string
   950                        description: Path to access on the HTTP server.
   951                      scheme:
   952                        type: string
   953                        description: Scheme to use for connecting to the host. Defaults to HTTP.
   954                    required:
   955                    - port
   956                  initialDelaySeconds:
   957                    type: integer
   958                    description: 'Number of seconds after the VirtualMachineInstance has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
   959                    format: int32
   960                  periodSeconds:
   961                    type: integer
   962                    description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
   963                    format: int32
   964                  successThreshold:
   965                    type: integer
   966                    description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
   967                    format: int32
   968                  tcpSocket:
   969                    type: object
   970                    description: 'TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook'
   971                    properties:
   972                      port:
   973                        anyOf:
   974                        - type: integer
   975                        - type: string
   976                        description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
   977                        x-kubernetes-int-or-string: true
   978                      host:
   979                        type: string
   980                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
   981                    required:
   982                    - port
   983                  timeoutSeconds:
   984                    type: integer
   985                    description: 'Number of seconds after which the probe times out. For exec probes the timeout fails the probe but does not terminate the command running on the guest. This means a blocking command can result in an increasing load on the guest. A small buffer will be added to the resulting workload exec probe to compensate for delays caused by the qemu guest exec mechanism. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
   986                    format: int32
   987              readinessProbe:
   988                type: object
   989                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'
   990                properties:
   991                  exec:
   992                    type: object
   993                    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.
   994                    properties:
   995                      command:
   996                        type: array
   997                        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.
   998                        items:
   999                          type: string
  1000                  failureThreshold:
  1001                    type: integer
  1002                    description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  1003                    format: int32
  1004                  guestAgentPing:
  1005                    type: object
  1006                    description: GuestAgentPing contacts the qemu-guest-agent for availability checks.
  1007                  httpGet:
  1008                    type: object
  1009                    description: HTTPGet specifies the http request to perform.
  1010                    properties:
  1011                      port:
  1012                        anyOf:
  1013                        - type: integer
  1014                        - type: string
  1015                        description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  1016                        x-kubernetes-int-or-string: true
  1017                      host:
  1018                        type: string
  1019                        description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  1020                      httpHeaders:
  1021                        type: array
  1022                        description: Custom headers to set in the request. HTTP allows repeated headers.
  1023                        items:
  1024                          type: object
  1025                          description: HTTPHeader describes a custom header to be used in HTTP probes
  1026                          properties:
  1027                            name:
  1028                              type: string
  1029                              description: The header field name
  1030                            value:
  1031                              type: string
  1032                              description: The header field value
  1033                          required:
  1034                          - name
  1035                          - value
  1036                      path:
  1037                        type: string
  1038                        description: Path to access on the HTTP server.
  1039                      scheme:
  1040                        type: string
  1041                        description: Scheme to use for connecting to the host. Defaults to HTTP.
  1042                    required:
  1043                    - port
  1044                  initialDelaySeconds:
  1045                    type: integer
  1046                    description: 'Number of seconds after the VirtualMachineInstance has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  1047                    format: int32
  1048                  periodSeconds:
  1049                    type: integer
  1050                    description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  1051                    format: int32
  1052                  successThreshold:
  1053                    type: integer
  1054                    description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
  1055                    format: int32
  1056                  tcpSocket:
  1057                    type: object
  1058                    description: 'TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook'
  1059                    properties:
  1060                      port:
  1061                        anyOf:
  1062                        - type: integer
  1063                        - type: string
  1064                        description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  1065                        x-kubernetes-int-or-string: true
  1066                      host:
  1067                        type: string
  1068                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
  1069                    required:
  1070                    - port
  1071                  timeoutSeconds:
  1072                    type: integer
  1073                    description: 'Number of seconds after which the probe times out. For exec probes the timeout fails the probe but does not terminate the command running on the guest. This means a blocking command can result in an increasing load on the guest. A small buffer will be added to the resulting workload exec probe to compensate for delays caused by the qemu guest exec mechanism. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  1074                    format: int32
  1075              accessCredentials:
  1076                type: array
  1077                description: Specifies a set of public keys to inject into the vm guest
  1078                items:
  1079                  type: object
  1080                  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.
  1081                  properties:
  1082                    sshPublicKey:
  1083                      type: object
  1084                      description: SSHPublicKey represents the source and method of applying a ssh public key into a guest virtual machine.
  1085                      properties:
  1086                        propagationMethod:
  1087                          type: object
  1088                          description: PropagationMethod represents how the public key is injected into the vm guest.
  1089                          properties:
  1090                            configDrive:
  1091                              type: object
  1092                              description: ConfigDrivePropagation means that the ssh public keys are injected into the VM using metadata using the configDrive cloud-init provider
  1093                            noCloud:
  1094                              type: object
  1095                              description: NoCloudPropagation means that the ssh public keys are injected into the VM using metadata using the noCloud cloud-init provider
  1096                            qemuGuestAgent:
  1097                              type: object
  1098                              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.
  1099                              properties:
  1100                                users:
  1101                                  type: array
  1102                                  description: Users represents a list of guest users that should have the ssh public keys added to their authorized_keys file.
  1103                                  items:
  1104                                    type: string
  1105                                  x-kubernetes-list-type: set
  1106                              required:
  1107                              - users
  1108                        source:
  1109                          type: object
  1110                          description: Source represents where the public keys are pulled from
  1111                          properties:
  1112                            secret:
  1113                              type: object
  1114                              description: Secret means that the access credential is pulled from a kubernetes secret
  1115                              properties:
  1116                                secretName:
  1117                                  type: string
  1118                                  description: SecretName represents the name of the secret in the VMI's namespace
  1119                              required:
  1120                              - secretName
  1121                      required:
  1122                      - propagationMethod
  1123                      - source
  1124                    userPassword:
  1125                      type: object
  1126                      description: UserPassword represents the source and method for applying a guest user's password
  1127                      properties:
  1128                        propagationMethod:
  1129                          type: object
  1130                          description: propagationMethod represents how the user passwords are injected into the vm guest.
  1131                          properties:
  1132                            qemuGuestAgent:
  1133                              type: object
  1134                              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.
  1135                        source:
  1136                          type: object
  1137                          description: Source represents where the user passwords are pulled from
  1138                          properties:
  1139                            secret:
  1140                              type: object
  1141                              description: Secret means that the access credential is pulled from a kubernetes secret
  1142                              properties:
  1143                                secretName:
  1144                                  type: string
  1145                                  description: SecretName represents the name of the secret in the VMI's namespace
  1146                              required:
  1147                              - secretName
  1148                      required:
  1149                      - propagationMethod
  1150                      - source
  1151                x-kubernetes-list-type: atomic
  1152              architecture:
  1153                type: string
  1154                description: Specifies the architecture of the vm guest you are attempting to run. Defaults to the compiled architecture of the KubeVirt components
  1155              domain:
  1156                type: object
  1157                description: Specification of the desired behavior of the VirtualMachineInstance on the host.
  1158                properties:
  1159                  resources:
  1160                    type: object
  1161                    description: Resources describes the Compute Resources required by this vmi.
  1162                    properties:
  1163                      limits:
  1164                        type: object
  1165                        additionalProperties:
  1166                          anyOf:
  1167                          - type: integer
  1168                          - type: string
  1169                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1170                          x-kubernetes-int-or-string: true
  1171                        description: Limits describes the maximum amount of compute resources allowed. Valid resource keys are "memory" and "cpu".
  1172                      overcommitGuestOverhead:
  1173                        type: boolean
  1174                        description: Don't ask the scheduler to take the guest-management overhead into account. Instead put the overhead only into the container's memory limit. This can lead to crashes if all memory is in use on a node. Defaults to false.
  1175                      requests:
  1176                        type: object
  1177                        additionalProperties:
  1178                          anyOf:
  1179                          - type: integer
  1180                          - type: string
  1181                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1182                          x-kubernetes-int-or-string: true
  1183                        description: Requests is a description of the initial vmi resources. Valid resource keys are "memory" and "cpu".
  1184                  chassis:
  1185                    type: object
  1186                    description: Chassis specifies the chassis info passed to the domain.
  1187                    properties:
  1188                      asset:
  1189                        type: string
  1190                      manufacturer:
  1191                        type: string
  1192                      serial:
  1193                        type: string
  1194                      sku:
  1195                        type: string
  1196                      version:
  1197                        type: string
  1198                  clock:
  1199                    type: object
  1200                    description: Clock sets the clock and timers of the vmi.
  1201                    properties:
  1202                      timer:
  1203                        type: object
  1204                        description: Timer specifies whih timers are attached to the vmi.
  1205                        properties:
  1206                          hpet:
  1207                            type: object
  1208                            description: HPET (High Precision Event Timer) - multiple timers with periodic interrupts.
  1209                            properties:
  1210                              present:
  1211                                type: boolean
  1212                                description: Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true.
  1213                              tickPolicy:
  1214                                type: string
  1215                                description: TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest. One of "delay", "catchup", "merge", "discard".
  1216                          hyperv:
  1217                            type: object
  1218                            description: Hyperv (Hypervclock) - lets guests read the host’s wall clock time (paravirtualized). For windows guests.
  1219                            properties:
  1220                              present:
  1221                                type: boolean
  1222                                description: Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true.
  1223                          kvm:
  1224                            type: object
  1225                            description: "KVM \t(KVM clock) - lets guests read the host’s wall clock time (paravirtualized). For linux guests."
  1226                            properties:
  1227                              present:
  1228                                type: boolean
  1229                                description: Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true.
  1230                          pit:
  1231                            type: object
  1232                            description: PIT (Programmable Interval Timer) - a timer with periodic interrupts.
  1233                            properties:
  1234                              present:
  1235                                type: boolean
  1236                                description: Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true.
  1237                              tickPolicy:
  1238                                type: string
  1239                                description: TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest. One of "delay", "catchup", "discard".
  1240                          rtc:
  1241                            type: object
  1242                            description: RTC (Real Time Clock) - a continuously running timer with periodic interrupts.
  1243                            properties:
  1244                              present:
  1245                                type: boolean
  1246                                description: Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true.
  1247                              tickPolicy:
  1248                                type: string
  1249                                description: TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest. One of "delay", "catchup".
  1250                              track:
  1251                                type: string
  1252                                description: Track the guest or the wall clock.
  1253                      timezone:
  1254                        type: string
  1255                        description: Timezone sets the guest clock to the specified timezone. Zone name follows the TZ environment variable format (e.g. 'America/New_York').
  1256                      utc:
  1257                        type: object
  1258                        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.
  1259                        properties:
  1260                          offsetSeconds:
  1261                            type: integer
  1262                            description: OffsetSeconds specifies an offset in seconds, relative to UTC. If set, guest changes to the clock will be kept during reboots and not reset.
  1263                  cpu:
  1264                    type: object
  1265                    description: CPU allow specified the detailed CPU topology inside the vmi.
  1266                    properties:
  1267                      cores:
  1268                        type: integer
  1269                        description: Cores specifies the number of cores inside the vmi. Must be a value greater or equal 1.
  1270                        format: int32
  1271                      dedicatedCpuPlacement:
  1272                        type: boolean
  1273                        description: DedicatedCPUPlacement requests the scheduler to place the VirtualMachineInstance on a node with enough dedicated pCPUs and pin the vCPUs to it.
  1274                      features:
  1275                        type: array
  1276                        description: Features specifies the CPU features list inside the VMI.
  1277                        items:
  1278                          type: object
  1279                          description: CPUFeature allows specifying a CPU feature.
  1280                          properties:
  1281                            name:
  1282                              type: string
  1283                              description: Name of the CPU feature
  1284                            policy:
  1285                              type: string
  1286                              description: 'Policy is the CPU feature attribute which can have the following attributes: force    - The virtual CPU will claim the feature is supported regardless of it being supported by host CPU. require  - Guest creation will fail unless the feature is supported by the host CPU or the hypervisor is able to emulate it. optional - The feature will be supported by virtual CPU if and only if it is supported by host CPU. disable  - The feature will not be supported by virtual CPU. forbid   - Guest creation will fail if the feature is supported by host CPU. Defaults to require'
  1287                          required:
  1288                          - name
  1289                      isolateEmulatorThread:
  1290                        type: boolean
  1291                        description: IsolateEmulatorThread requests one more dedicated pCPU to be allocated for the VMI to place the emulator thread on it.
  1292                      maxSockets:
  1293                        type: integer
  1294                        description: MaxSockets specifies the maximum amount of sockets that can be hotplugged
  1295                        format: int32
  1296                      model:
  1297                        type: string
  1298                        description: Model specifies the CPU model inside the VMI. List of available models https://github.com/libvirt/libvirt/tree/master/src/cpu_map. It is possible to specify special cases like "host-passthrough" to get the same CPU as the node and "host-model" to get CPU closest to the node one. Defaults to host-model.
  1299                      numa:
  1300                        type: object
  1301                        description: NUMA allows specifying settings for the guest NUMA topology
  1302                        properties:
  1303                          guestMappingPassthrough:
  1304                            type: object
  1305                            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.
  1306                      realtime:
  1307                        type: object
  1308                        description: Realtime instructs the virt-launcher to tune the VMI for lower latency, optional for real time workloads
  1309                        properties:
  1310                          mask:
  1311                            type: string
  1312                            description: 'Mask defines the vcpu mask expression that defines which vcpus are used for realtime. Format matches libvirt''s expressions. Example: "0-3,^1","0,2,3","2-3"'
  1313                      sockets:
  1314                        type: integer
  1315                        description: Sockets specifies the number of sockets inside the vmi. Must be a value greater or equal 1.
  1316                        format: int32
  1317                      threads:
  1318                        type: integer
  1319                        description: Threads specifies the number of threads inside the vmi. Must be a value greater or equal 1.
  1320                        format: int32
  1321                  devices:
  1322                    type: object
  1323                    description: Devices allows adding disks, network interfaces, and others
  1324                    properties:
  1325                      autoattachGraphicsDevice:
  1326                        type: boolean
  1327                        description: Whether to attach the default graphics device or not. VNC will not be available if set to false. Defaults to true.
  1328                      autoattachInputDevice:
  1329                        type: boolean
  1330                        description: Whether to attach an Input Device. Defaults to false.
  1331                      autoattachMemBalloon:
  1332                        type: boolean
  1333                        description: Whether to attach the Memory balloon device with default period. Period can be adjusted in virt-config. Defaults to true.
  1334                      autoattachPodInterface:
  1335                        type: boolean
  1336                        description: Whether to attach a pod network interface. Defaults to true.
  1337                      autoattachSerialConsole:
  1338                        type: boolean
  1339                        description: Whether to attach the default virtio-serial console or not. Serial console access will not be available if set to false. Defaults to true.
  1340                      autoattachVSOCK:
  1341                        type: boolean
  1342                        description: Whether to attach the VSOCK CID to the VM or not. VSOCK access will be available if set to true. Defaults to false.
  1343                      blockMultiQueue:
  1344                        type: boolean
  1345                        description: Whether or not to enable virtio multi-queue for block devices. Defaults to false.
  1346                      clientPassthrough:
  1347                        type: object
  1348                        description: To configure and access client devices such as redirecting USB
  1349                      disableHotplug:
  1350                        type: boolean
  1351                        description: DisableHotplug disabled the ability to hotplug disks.
  1352                      disks:
  1353                        type: array
  1354                        description: Disks describes disks, cdroms and luns which are connected to the vmi.
  1355                        items:
  1356                          type: object
  1357                          properties:
  1358                            name:
  1359                              type: string
  1360                              description: Name is the device name
  1361                            blockSize:
  1362                              type: object
  1363                              description: If specified, the virtual disk will be presented with the given block sizes.
  1364                              properties:
  1365                                custom:
  1366                                  type: object
  1367                                  description: CustomBlockSize represents the desired logical and physical block size for a VM disk.
  1368                                  properties:
  1369                                    logical:
  1370                                      type: integer
  1371                                    physical:
  1372                                      type: integer
  1373                                  required:
  1374                                  - logical
  1375                                  - physical
  1376                                matchVolume:
  1377                                  type: object
  1378                                  description: Represents if a feature is enabled or disabled.
  1379                                  properties:
  1380                                    enabled:
  1381                                      type: boolean
  1382                                      description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1383                            bootOrder:
  1384                              type: integer
  1385                              description: BootOrder is an integer value > 0, used to determine ordering of boot devices. Lower values take precedence. Each disk or interface that has a boot order must have a unique value. Disks without a boot order are not tried if a disk with a boot order exists.
  1386                            cache:
  1387                              type: string
  1388                              description: 'Cache specifies which kvm disk cache mode should be used. Supported values are: CacheNone, CacheWriteThrough.'
  1389                            cdrom:
  1390                              type: object
  1391                              description: Attach a volume as a cdrom to the vmi.
  1392                              properties:
  1393                                bus:
  1394                                  type: string
  1395                                  description: 'Bus indicates the type of disk device to emulate. supported values: virtio, sata, scsi.'
  1396                                readonly:
  1397                                  type: boolean
  1398                                  description: ReadOnly. Defaults to true.
  1399                                tray:
  1400                                  type: string
  1401                                  description: Tray indicates if the tray of the device is open or closed. Allowed values are "open" and "closed". Defaults to closed.
  1402                            dedicatedIOThread:
  1403                              type: boolean
  1404                              description: dedicatedIOThread indicates this disk should have an exclusive IO Thread. Enabling this implies useIOThreads = true. Defaults to false.
  1405                            disk:
  1406                              type: object
  1407                              description: Attach a volume as a disk to the vmi.
  1408                              properties:
  1409                                bus:
  1410                                  type: string
  1411                                  description: 'Bus indicates the type of disk device to emulate. supported values: virtio, sata, scsi, usb.'
  1412                                pciAddress:
  1413                                  type: string
  1414                                  description: 'If specified, the virtual disk will be placed on the guests pci address with the specified PCI address. For example: 0000:81:01.10'
  1415                                readonly:
  1416                                  type: boolean
  1417                                  description: ReadOnly. Defaults to false.
  1418                            errorPolicy:
  1419                              type: string
  1420                              description: If specified, it can change the default error policy (stop) for the disk
  1421                            io:
  1422                              type: string
  1423                              description: 'IO specifies which QEMU disk IO mode should be used. Supported values are: native, default, threads.'
  1424                            lun:
  1425                              type: object
  1426                              description: Attach a volume as a LUN to the vmi.
  1427                              properties:
  1428                                bus:
  1429                                  type: string
  1430                                  description: 'Bus indicates the type of disk device to emulate. supported values: virtio, sata, scsi.'
  1431                                readonly:
  1432                                  type: boolean
  1433                                  description: ReadOnly. Defaults to false.
  1434                                reservation:
  1435                                  type: boolean
  1436                                  description: Reservation indicates if the disk needs to support the persistent reservation for the SCSI disk
  1437                            serial:
  1438                              type: string
  1439                              description: Serial provides the ability to specify a serial number for the disk device.
  1440                            shareable:
  1441                              type: boolean
  1442                              description: If specified the disk is made sharable and multiple write from different VMs are permitted
  1443                            tag:
  1444                              type: string
  1445                              description: If specified, disk address and its tag will be provided to the guest via config drive metadata
  1446                          required:
  1447                          - name
  1448                      downwardMetrics:
  1449                        type: object
  1450                        description: DownwardMetrics creates a virtio serials for exposing the downward metrics to the vmi.
  1451                      filesystems:
  1452                        type: array
  1453                        description: Filesystems describes filesystem which is connected to the vmi.
  1454                        items:
  1455                          type: object
  1456                          properties:
  1457                            name:
  1458                              type: string
  1459                              description: Name is the device name
  1460                            virtiofs:
  1461                              type: object
  1462                              description: Virtiofs is supported
  1463                          required:
  1464                          - name
  1465                          - virtiofs
  1466                        x-kubernetes-list-type: atomic
  1467                      gpus:
  1468                        type: array
  1469                        description: Whether to attach a GPU device to the vmi.
  1470                        items:
  1471                          type: object
  1472                          properties:
  1473                            name:
  1474                              type: string
  1475                              description: Name of the GPU device as exposed by a device plugin
  1476                            deviceName:
  1477                              type: string
  1478                            tag:
  1479                              type: string
  1480                              description: If specified, the virtual network interface address and its tag will be provided to the guest via config drive
  1481                            virtualGPUOptions:
  1482                              type: object
  1483                              properties:
  1484                                display:
  1485                                  type: object
  1486                                  properties:
  1487                                    enabled:
  1488                                      type: boolean
  1489                                      description: Enabled determines if a display addapter backed by a vGPU should be enabled or disabled on the guest. Defaults to true.
  1490                                    ramFB:
  1491                                      type: object
  1492                                      description: Enables a boot framebuffer, until the guest OS loads a real GPU driver Defaults to true.
  1493                                      properties:
  1494                                        enabled:
  1495                                          type: boolean
  1496                                          description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1497                          required:
  1498                          - deviceName
  1499                          - name
  1500                        x-kubernetes-list-type: atomic
  1501                      hostDevices:
  1502                        type: array
  1503                        description: Whether to attach a host device to the vmi.
  1504                        items:
  1505                          type: object
  1506                          properties:
  1507                            name:
  1508                              type: string
  1509                            deviceName:
  1510                              type: string
  1511                              description: DeviceName is the resource name of the host device exposed by a device plugin
  1512                            tag:
  1513                              type: string
  1514                              description: If specified, the virtual network interface address and its tag will be provided to the guest via config drive
  1515                          required:
  1516                          - deviceName
  1517                          - name
  1518                        x-kubernetes-list-type: atomic
  1519                      inputs:
  1520                        type: array
  1521                        description: Inputs describe input devices
  1522                        items:
  1523                          type: object
  1524                          properties:
  1525                            name:
  1526                              type: string
  1527                              description: Name is the device name
  1528                            type:
  1529                              type: string
  1530                              description: 'Type indicated the type of input device. Supported values: tablet.'
  1531                            bus:
  1532                              type: string
  1533                              description: 'Bus indicates the bus of input device to emulate. Supported values: virtio, usb.'
  1534                          required:
  1535                          - name
  1536                          - type
  1537                      interfaces:
  1538                        type: array
  1539                        description: Interfaces describe network interfaces which are added to the vmi.
  1540                        items:
  1541                          type: object
  1542                          properties:
  1543                            name:
  1544                              type: string
  1545                              description: Logical name of the interface as well as a reference to the associated networks. Must match the Name of a Network.
  1546                            ports:
  1547                              type: array
  1548                              description: List of ports to be forwarded to the virtual machine.
  1549                              items:
  1550                                type: object
  1551                                description: Port represents a port to expose from the virtual machine. Default protocol TCP. The port field is mandatory
  1552                                properties:
  1553                                  name:
  1554                                    type: string
  1555                                    description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.
  1556                                  protocol:
  1557                                    type: string
  1558                                    description: Protocol for port. Must be UDP or TCP. Defaults to "TCP".
  1559                                  port:
  1560                                    type: integer
  1561                                    description: Number of port to expose for the virtual machine. This must be a valid port number, 0 < x < 65536.
  1562                                    format: int32
  1563                                required:
  1564                                - port
  1565                            acpiIndex:
  1566                              type: integer
  1567                              description: If specified, the ACPI index is used to provide network interface device naming, that is stable across changes in PCI addresses assigned to the device. This value is required to be unique across all devices and be between 1 and (16*1024-1).
  1568                            binding:
  1569                              type: object
  1570                              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'
  1571                              properties:
  1572                                name:
  1573                                  type: string
  1574                                  description: 'Name references to the binding name as denined in the kubevirt CR. version: 1alphav1'
  1575                              required:
  1576                              - name
  1577                            bootOrder:
  1578                              type: integer
  1579                              description: BootOrder is an integer value > 0, used to determine ordering of boot devices. Lower values take precedence. Each interface or disk that has a boot order must have a unique value. Interfaces without a boot order are not tried.
  1580                            bridge:
  1581                              type: object
  1582                              description: InterfaceBridge connects to a given network via a linux bridge.
  1583                            dhcpOptions:
  1584                              type: object
  1585                              description: If specified the network interface will pass additional DHCP options to the VMI
  1586                              properties:
  1587                                bootFileName:
  1588                                  type: string
  1589                                  description: If specified will pass option 67 to interface's DHCP server
  1590                                ntpServers:
  1591                                  type: array
  1592                                  description: If specified will pass the configured NTP server to the VM via DHCP option 042.
  1593                                  items:
  1594                                    type: string
  1595                                privateOptions:
  1596                                  type: array
  1597                                  description: 'If specified will pass extra DHCP options for private use, range: 224-254'
  1598                                  items:
  1599                                    type: object
  1600                                    description: DHCPExtraOptions defines Extra DHCP options for a VM.
  1601                                    properties:
  1602                                      value:
  1603                                        type: string
  1604                                        description: Value is a String value for the Option provided Required.
  1605                                      option:
  1606                                        type: integer
  1607                                        description: Option is an Integer value from 224-254 Required.
  1608                                    required:
  1609                                    - option
  1610                                    - value
  1611                                tftpServerName:
  1612                                  type: string
  1613                                  description: If specified will pass option 66 to interface's DHCP server
  1614                            macAddress:
  1615                              type: string
  1616                              description: 'Interface MAC address. For example: de:ad:00:00:be:af or DE-AD-00-00-BE-AF.'
  1617                            macvtap:
  1618                              type: object
  1619                              description: InterfaceMacvtap connects to a given network by extending the Kubernetes node's L2 networks via a macvtap interface.
  1620                            masquerade:
  1621                              type: object
  1622                              description: InterfaceMasquerade connects to a given network using netfilter rules to nat the traffic.
  1623                            model:
  1624                              type: string
  1625                              description: 'Interface model. One of: e1000, e1000e, ne2k_pci, pcnet, rtl8139, virtio. Defaults to virtio. TODO:(ihar) switch to enums once opengen-api supports them. See: https://github.com/kubernetes/kube-openapi/issues/51'
  1626                            passt:
  1627                              type: object
  1628                              description: InterfacePasst connects to a given network.
  1629                            pciAddress:
  1630                              type: string
  1631                              description: 'If specified, the virtual network interface will be placed on the guests pci address with the specified PCI address. For example: 0000:81:01.10'
  1632                            slirp:
  1633                              type: object
  1634                              description: InterfaceSlirp connects to a given network using QEMU user networking mode.
  1635                            sriov:
  1636                              type: object
  1637                              description: InterfaceSRIOV connects to a given network by passing-through an SR-IOV PCI device via vfio.
  1638                            state:
  1639                              type: string
  1640                              description: State represents the requested operational state of the interface. The (only) value supported is 'absent', expressing a request to remove the interface.
  1641                            tag:
  1642                              type: string
  1643                              description: If specified, the virtual network interface address and its tag will be provided to the guest via config drive
  1644                          required:
  1645                          - name
  1646                      logSerialConsole:
  1647                        type: boolean
  1648                        description: Whether to log the auto-attached default serial console or not. Serial console logs will be collect to a file and then streamed from a named 'guest-console-log'. Not relevant if autoattachSerialConsole is disabled. Defaults to cluster wide setting on VirtualMachineOptions.
  1649                      networkInterfaceMultiqueue:
  1650                        type: boolean
  1651                        description: If specified, virtual network interfaces configured with a virtio bus will also enable the vhost multiqueue feature for network devices. The number of queues created depends on additional factors of the VirtualMachineInstance, like the number of guest CPUs.
  1652                      rng:
  1653                        type: object
  1654                        description: Whether to have random number generator from host
  1655                      sound:
  1656                        type: object
  1657                        description: Whether to emulate a sound device.
  1658                        properties:
  1659                          name:
  1660                            type: string
  1661                            description: User's defined name for this sound device
  1662                          model:
  1663                            type: string
  1664                            description: 'We only support ich9 or ac97. If SoundDevice is not set: No sound card is emulated. If SoundDevice is set but Model is not: ich9'
  1665                        required:
  1666                        - name
  1667                      tpm:
  1668                        type: object
  1669                        description: Whether to emulate a TPM device.
  1670                        properties:
  1671                          persistent:
  1672                            type: boolean
  1673                            description: Persistent indicates the state of the TPM device should be kept accross reboots Defaults to false
  1674                      useVirtioTransitional:
  1675                        type: boolean
  1676                        description: Fall back to legacy virtio 0.9 support if virtio bus is selected on devices. This is helpful for old machines like CentOS6 or RHEL6 which do not understand virtio_non_transitional (virtio 1.0).
  1677                      watchdog:
  1678                        type: object
  1679                        description: Watchdog describes a watchdog device which can be added to the vmi.
  1680                        properties:
  1681                          name:
  1682                            type: string
  1683                            description: Name of the watchdog.
  1684                          i6300esb:
  1685                            type: object
  1686                            description: i6300esb watchdog device.
  1687                            properties:
  1688                              action:
  1689                                type: string
  1690                                description: The action to take. Valid values are poweroff, reset, shutdown. Defaults to reset.
  1691                        required:
  1692                        - name
  1693                  features:
  1694                    type: object
  1695                    description: Features like acpi, apic, hyperv, smm.
  1696                    properties:
  1697                      acpi:
  1698                        type: object
  1699                        description: ACPI enables/disables ACPI inside the guest. Defaults to enabled.
  1700                        properties:
  1701                          enabled:
  1702                            type: boolean
  1703                            description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1704                      apic:
  1705                        type: object
  1706                        description: Defaults to the machine type setting.
  1707                        properties:
  1708                          enabled:
  1709                            type: boolean
  1710                            description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1711                          endOfInterrupt:
  1712                            type: boolean
  1713                            description: EndOfInterrupt enables the end of interrupt notification in the guest. Defaults to false.
  1714                      hyperv:
  1715                        type: object
  1716                        description: Defaults to the machine type setting.
  1717                        properties:
  1718                          evmcs:
  1719                            type: object
  1720                            description: EVMCS Speeds up L2 vmexits, but disables other virtualization features. Requires vapic. Defaults to the machine type setting.
  1721                            properties:
  1722                              enabled:
  1723                                type: boolean
  1724                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1725                          frequencies:
  1726                            type: object
  1727                            description: Frequencies improves the TSC clock source handling for Hyper-V on KVM. Defaults to the machine type setting.
  1728                            properties:
  1729                              enabled:
  1730                                type: boolean
  1731                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1732                          ipi:
  1733                            type: object
  1734                            description: IPI improves performances in overcommited environments. Requires vpindex. Defaults to the machine type setting.
  1735                            properties:
  1736                              enabled:
  1737                                type: boolean
  1738                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1739                          reenlightenment:
  1740                            type: object
  1741                            description: Reenlightenment enables the notifications on TSC frequency changes. Defaults to the machine type setting.
  1742                            properties:
  1743                              enabled:
  1744                                type: boolean
  1745                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1746                          relaxed:
  1747                            type: object
  1748                            description: Relaxed instructs the guest OS to disable watchdog timeouts. Defaults to the machine type setting.
  1749                            properties:
  1750                              enabled:
  1751                                type: boolean
  1752                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1753                          reset:
  1754                            type: object
  1755                            description: Reset enables Hyperv reboot/reset for the vmi. Requires synic. Defaults to the machine type setting.
  1756                            properties:
  1757                              enabled:
  1758                                type: boolean
  1759                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1760                          runtime:
  1761                            type: object
  1762                            description: Runtime improves the time accounting to improve scheduling in the guest. Defaults to the machine type setting.
  1763                            properties:
  1764                              enabled:
  1765                                type: boolean
  1766                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1767                          spinlocks:
  1768                            type: object
  1769                            description: Spinlocks allows to configure the spinlock retry attempts.
  1770                            properties:
  1771                              enabled:
  1772                                type: boolean
  1773                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1774                              spinlocks:
  1775                                type: integer
  1776                                description: Retries indicates the number of retries. Must be a value greater or equal 4096. Defaults to 4096.
  1777                                format: int32
  1778                          synic:
  1779                            type: object
  1780                            description: SyNIC enables the Synthetic Interrupt Controller. Defaults to the machine type setting.
  1781                            properties:
  1782                              enabled:
  1783                                type: boolean
  1784                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1785                          synictimer:
  1786                            type: object
  1787                            description: SyNICTimer enables Synthetic Interrupt Controller Timers, reducing CPU load. Defaults to the machine type setting.
  1788                            properties:
  1789                              direct:
  1790                                type: object
  1791                                description: Represents if a feature is enabled or disabled.
  1792                                properties:
  1793                                  enabled:
  1794                                    type: boolean
  1795                                    description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1796                              enabled:
  1797                                type: boolean
  1798                          tlbflush:
  1799                            type: object
  1800                            description: TLBFlush improves performances in overcommited environments. Requires vpindex. Defaults to the machine type setting.
  1801                            properties:
  1802                              enabled:
  1803                                type: boolean
  1804                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1805                          vapic:
  1806                            type: object
  1807                            description: VAPIC improves the paravirtualized handling of interrupts. Defaults to the machine type setting.
  1808                            properties:
  1809                              enabled:
  1810                                type: boolean
  1811                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1812                          vendorid:
  1813                            type: object
  1814                            description: VendorID allows setting the hypervisor vendor id. Defaults to the machine type setting.
  1815                            properties:
  1816                              enabled:
  1817                                type: boolean
  1818                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1819                              vendorid:
  1820                                type: string
  1821                                description: VendorID sets the hypervisor vendor id, visible to the vmi. String up to twelve characters.
  1822                          vpindex:
  1823                            type: object
  1824                            description: VPIndex enables the Virtual Processor Index to help windows identifying virtual processors. Defaults to the machine type setting.
  1825                            properties:
  1826                              enabled:
  1827                                type: boolean
  1828                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1829                      kvm:
  1830                        type: object
  1831                        description: Configure how KVM presence is exposed to the guest.
  1832                        properties:
  1833                          hidden:
  1834                            type: boolean
  1835                            description: Hide the KVM hypervisor from standard MSR based discovery. Defaults to false
  1836                      pvspinlock:
  1837                        type: object
  1838                        description: Notify the guest that the host supports paravirtual spinlocks. For older kernels this feature should be explicitly disabled.
  1839                        properties:
  1840                          enabled:
  1841                            type: boolean
  1842                            description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1843                      smm:
  1844                        type: object
  1845                        description: SMM enables/disables System Management Mode. TSEG not yet implemented.
  1846                        properties:
  1847                          enabled:
  1848                            type: boolean
  1849                            description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  1850                  firmware:
  1851                    type: object
  1852                    description: Firmware.
  1853                    properties:
  1854                      bootloader:
  1855                        type: object
  1856                        description: Settings to control the bootloader that is used.
  1857                        properties:
  1858                          bios:
  1859                            type: object
  1860                            description: If set (default), BIOS will be used.
  1861                            properties:
  1862                              useSerial:
  1863                                type: boolean
  1864                                description: If set, the BIOS output will be transmitted over serial
  1865                          efi:
  1866                            type: object
  1867                            description: If set, EFI will be used instead of BIOS.
  1868                            properties:
  1869                              persistent:
  1870                                type: boolean
  1871                                description: If set to true, Persistent will persist the EFI NVRAM across reboots. Defaults to false
  1872                              secureBoot:
  1873                                type: boolean
  1874                                description: If set, SecureBoot will be enabled and the OVMF roms will be swapped for SecureBoot-enabled ones. Requires SMM to be enabled. Defaults to true
  1875                      kernelBoot:
  1876                        type: object
  1877                        description: Settings to set the kernel for booting.
  1878                        properties:
  1879                          container:
  1880                            type: object
  1881                            description: Container defines the container that containes kernel artifacts
  1882                            properties:
  1883                              image:
  1884                                type: string
  1885                                description: Image that contains initrd / kernel files.
  1886                              imagePullPolicy:
  1887                                type: string
  1888                                description: 'Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
  1889                              imagePullSecret:
  1890                                type: string
  1891                                description: ImagePullSecret is the name of the Docker registry secret required to pull the image. The secret must already exist.
  1892                              initrdPath:
  1893                                type: string
  1894                                description: the fully-qualified path to the ramdisk image in the host OS
  1895                              kernelPath:
  1896                                type: string
  1897                                description: The fully-qualified path to the kernel image in the host OS
  1898                            required:
  1899                            - image
  1900                          kernelArgs:
  1901                            type: string
  1902                            description: Arguments to be passed to the kernel at boot time
  1903                      serial:
  1904                        type: string
  1905                        description: The system-serial-number in SMBIOS
  1906                      uuid:
  1907                        type: string
  1908                        description: UUID reported by the vmi bios. Defaults to a random generated uid.
  1909                  ioThreadsPolicy:
  1910                    type: string
  1911                    description: 'Controls whether or not disks will share IOThreads. Omitting IOThreadsPolicy disables use of IOThreads. One of: shared, auto'
  1912                  launchSecurity:
  1913                    type: object
  1914                    description: Launch Security setting of the vmi.
  1915                    properties:
  1916                      sev:
  1917                        type: object
  1918                        description: AMD Secure Encrypted Virtualization (SEV).
  1919                        properties:
  1920                          attestation:
  1921                            type: object
  1922                            description: If specified, run the attestation process for a vmi.
  1923                          dhCert:
  1924                            type: string
  1925                            description: Base64 encoded guest owner's Diffie-Hellman key.
  1926                          policy:
  1927                            type: object
  1928                            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.'
  1929                            properties:
  1930                              encryptedState:
  1931                                type: boolean
  1932                                description: SEV-ES is required. Defaults to false.
  1933                          session:
  1934                            type: string
  1935                            description: Base64 encoded session blob.
  1936                  machine:
  1937                    type: object
  1938                    description: Machine type.
  1939                    properties:
  1940                      type:
  1941                        type: string
  1942                        description: QEMU machine type is the actual chipset of the VirtualMachineInstance.
  1943                  memory:
  1944                    type: object
  1945                    description: Memory allow specifying the VMI memory features.
  1946                    properties:
  1947                      guest:
  1948                        anyOf:
  1949                        - type: integer
  1950                        - type: string
  1951                        description: Guest allows to specifying the amount of memory which is visible inside the Guest OS. The Guest must lie between Requests and Limits from the resources section. Defaults to the requested memory in the resources section if not specified.
  1952                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1953                        x-kubernetes-int-or-string: true
  1954                      hugepages:
  1955                        type: object
  1956                        description: Hugepages allow to use hugepages for the VirtualMachineInstance instead of regular memory.
  1957                        properties:
  1958                          pageSize:
  1959                            type: string
  1960                            description: PageSize specifies the hugepage size, for x86_64 architecture valid values are 1Gi and 2Mi.
  1961                      maxGuest:
  1962                        anyOf:
  1963                        - type: integer
  1964                        - type: string
  1965                        description: MaxGuest allows to specify the maximum amount of memory which is visible inside the Guest OS. The delta between MaxGuest and Guest is the amount of memory that can be hot(un)plugged.
  1966                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  1967                        x-kubernetes-int-or-string: true
  1968                required:
  1969                - devices
  1970              evictionStrategy:
  1971                type: string
  1972                description: EvictionStrategy can be set to "LiveMigrate" if the VirtualMachineInstance should be migrated instead of shut-off in case of a node drain.
  1973              networks:
  1974                type: array
  1975                description: List of networks that can be attached to a vm's virtual interface.
  1976                items:
  1977                  type: object
  1978                  description: Network represents a network type and a resource that should be connected to the vm.
  1979                  properties:
  1980                    name:
  1981                      type: string
  1982                      description: 'Network name. Must be a DNS_LABEL and unique within the vm. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  1983                    multus:
  1984                      type: object
  1985                      description: Represents the multus cni network.
  1986                      properties:
  1987                        default:
  1988                          type: boolean
  1989                          description: Select the default network and add it to the multus-cni.io/default-network annotation.
  1990                        networkName:
  1991                          type: string
  1992                          description: 'References to a NetworkAttachmentDefinition CRD object. Format: <networkName>, <namespace>/<networkName>. If namespace is not specified, VMI namespace is assumed.'
  1993                      required:
  1994                      - networkName
  1995                    pod:
  1996                      type: object
  1997                      description: Represents the stock pod network interface.
  1998                      properties:
  1999                        vmIPv6NetworkCIDR:
  2000                          type: string
  2001                          description: IPv6 CIDR for the vm network. Defaults to fd10:0:2::/120 if not specified.
  2002                        vmNetworkCIDR:
  2003                          type: string
  2004                          description: CIDR for vm network. Default 10.0.2.0/24 if not specified.
  2005                  required:
  2006                  - name
  2007              startStrategy:
  2008                type: string
  2009                description: StartStrategy can be set to "Paused" if Virtual Machine should be started in paused state.
  2010              topologySpreadConstraints:
  2011                type: array
  2012                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.
  2013                items:
  2014                  type: object
  2015                  description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  2016                  properties:
  2017                    labelSelector:
  2018                      type: object
  2019                      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.
  2020                      properties:
  2021                        matchExpressions:
  2022                          type: array
  2023                          description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  2024                          items:
  2025                            type: object
  2026                            description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2027                            properties:
  2028                              key:
  2029                                type: string
  2030                                description: key is the label key that the selector applies to.
  2031                              operator:
  2032                                type: string
  2033                                description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  2034                              values:
  2035                                type: array
  2036                                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.
  2037                                items:
  2038                                  type: string
  2039                            required:
  2040                            - key
  2041                            - operator
  2042                        matchLabels:
  2043                          type: object
  2044                          additionalProperties:
  2045                            type: string
  2046                          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.
  2047                    matchLabelKeys:
  2048                      type: array
  2049                      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. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
  2050                      items:
  2051                        type: string
  2052                      x-kubernetes-list-type: atomic
  2053                    maxSkew:
  2054                      type: integer
  2055                      description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When ''whenUnsatisfiable=DoNotSchedule'', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | |  P P  |  P P  |   P   | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When ''whenUnsatisfiable=ScheduleAnyway'', it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  2056                      format: int32
  2057                    minDomains:
  2058                      type: integer
  2059                      description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | |  P P  |  P P  |  P P  | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  2060                      format: int32
  2061                    nodeAffinityPolicy:
  2062                      type: string
  2063                      description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  2064                    nodeTaintsPolicy:
  2065                      type: string
  2066                      description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  2067                    topologyKey:
  2068                      type: string
  2069                      description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  2070                    whenUnsatisfiable:
  2071                      type: string
  2072                      description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,   but giving higher precedence to topologies that would help reduce the   skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P |   P   |   P   | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  2073                  required:
  2074                  - maxSkew
  2075                  - topologyKey
  2076                  - whenUnsatisfiable
  2077                x-kubernetes-list-map-keys:
  2078                - topologyKey
  2079                - whenUnsatisfiable
  2080                x-kubernetes-list-type: map
  2081            required:
  2082            - domain
  2083          status:
  2084            type: object
  2085            description: Status is the high level overview of how the VirtualMachineInstance is doing. It contains information available to controllers and users.
  2086            properties:
  2087              nodeName:
  2088                type: string
  2089                description: NodeName is the name where the VirtualMachineInstance is currently running.
  2090              VSOCKCID:
  2091                type: integer
  2092                description: VSOCKCID is used to track the allocated VSOCK CID in the VM.
  2093                format: int32
  2094              activePods:
  2095                type: object
  2096                additionalProperties:
  2097                  type: string
  2098                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.
  2099              conditions:
  2100                type: array
  2101                description: Conditions are specific points in VirtualMachineInstance's pod runtime.
  2102                items:
  2103                  type: object
  2104                  properties:
  2105                    type:
  2106                      type: string
  2107                    status:
  2108                      type: string
  2109                    lastProbeTime:
  2110                      type: string
  2111                      format: date-time
  2112                      nullable: true
  2113                    lastTransitionTime:
  2114                      type: string
  2115                      format: date-time
  2116                      nullable: true
  2117                    message:
  2118                      type: string
  2119                    reason:
  2120                      type: string
  2121                  required:
  2122                  - status
  2123                  - type
  2124              currentCPUTopology:
  2125                type: object
  2126                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.
  2127                properties:
  2128                  cores:
  2129                    type: integer
  2130                    description: Cores specifies the number of cores inside the vmi. Must be a value greater or equal 1.
  2131                    format: int32
  2132                  sockets:
  2133                    type: integer
  2134                    description: Sockets specifies the number of sockets inside the vmi. Must be a value greater or equal 1.
  2135                    format: int32
  2136                  threads:
  2137                    type: integer
  2138                    description: Threads specifies the number of threads inside the vmi. Must be a value greater or equal 1.
  2139                    format: int32
  2140              evacuationNodeName:
  2141                type: string
  2142                description: EvacuationNodeName is used to track the eviction process of a VMI. It stores the name of the node that we want to evacuate. It is meant to be used by KubeVirt core components only and can't be set or modified by users.
  2143              fsFreezeStatus:
  2144                type: string
  2145                description: FSFreezeStatus is the state of the fs of the guest it can be either frozen or thawed
  2146              guestOSInfo:
  2147                type: object
  2148                description: Guest OS Information
  2149                properties:
  2150                  name:
  2151                    type: string
  2152                    description: Name of the Guest OS
  2153                  id:
  2154                    type: string
  2155                    description: Guest OS Id
  2156                  kernelRelease:
  2157                    type: string
  2158                    description: Guest OS Kernel Release
  2159                  kernelVersion:
  2160                    type: string
  2161                    description: Kernel version of the Guest OS
  2162                  machine:
  2163                    type: string
  2164                    description: Machine type of the Guest OS
  2165                  prettyName:
  2166                    type: string
  2167                    description: Guest OS Pretty Name
  2168                  version:
  2169                    type: string
  2170                    description: Guest OS Version
  2171                  versionId:
  2172                    type: string
  2173                    description: Version ID of the Guest OS
  2174              interfaces:
  2175                type: array
  2176                description: Interfaces represent the details of available network interfaces.
  2177                items:
  2178                  type: object
  2179                  properties:
  2180                    name:
  2181                      type: string
  2182                      description: Name of the interface, corresponds to name of the network assigned to the interface
  2183                    infoSource:
  2184                      type: string
  2185                      description: 'Specifies the origin of the interface data collected. values: domain, guest-agent, multus-status.'
  2186                    interfaceName:
  2187                      type: string
  2188                      description: The interface name inside the Virtual Machine
  2189                    ipAddress:
  2190                      type: string
  2191                      description: IP address of a Virtual Machine interface. It is always the first item of IPs
  2192                    ipAddresses:
  2193                      type: array
  2194                      description: List of all IP addresses of a Virtual Machine interface
  2195                      items:
  2196                        type: string
  2197                    mac:
  2198                      type: string
  2199                      description: Hardware address of a Virtual Machine interface
  2200                    queueCount:
  2201                      type: integer
  2202                      description: Specifies how many queues are allocated by MultiQueue
  2203                      format: int32
  2204              launcherContainerImageVersion:
  2205                type: string
  2206                description: LauncherContainerImageVersion indicates what container image is currently active for the vmi.
  2207              machine:
  2208                type: object
  2209                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.
  2210                properties:
  2211                  type:
  2212                    type: string
  2213                    description: QEMU machine type is the actual chipset of the VirtualMachineInstance.
  2214              memory:
  2215                type: object
  2216                description: Memory shows various informations about the VirtualMachine memory.
  2217                properties:
  2218                  guestAtBoot:
  2219                    anyOf:
  2220                    - type: integer
  2221                    - type: string
  2222                    description: GuestAtBoot specifies with how much memory the VirtualMachine intiallly booted with.
  2223                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2224                    x-kubernetes-int-or-string: true
  2225                  guestCurrent:
  2226                    anyOf:
  2227                    - type: integer
  2228                    - type: string
  2229                    description: GuestCurrent specifies how much memory is currently available for the VirtualMachine.
  2230                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2231                    x-kubernetes-int-or-string: true
  2232                  guestRequested:
  2233                    anyOf:
  2234                    - type: integer
  2235                    - type: string
  2236                    description: GuestRequested specifies how much memory was requested (hotplug) for the VirtualMachine.
  2237                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2238                    x-kubernetes-int-or-string: true
  2239              migrationMethod:
  2240                type: string
  2241                description: 'Represents the method using which the vmi can be migrated: live migration or block migration'
  2242              migrationState:
  2243                type: object
  2244                description: Represents the status of a live migration
  2245                properties:
  2246                  abortRequested:
  2247                    type: boolean
  2248                    description: Indicates that the migration has been requested to abort
  2249                  abortStatus:
  2250                    type: string
  2251                    description: Indicates the final status of the live migration abortion
  2252                  completed:
  2253                    type: boolean
  2254                    description: Indicates the migration completed
  2255                  endTimestamp:
  2256                    type: string
  2257                    description: The time the migration action ended
  2258                    format: date-time
  2259                    nullable: true
  2260                  failed:
  2261                    type: boolean
  2262                    description: Indicates that the migration failed
  2263                  migrationConfiguration:
  2264                    type: object
  2265                    description: Migration configurations to apply
  2266                    properties:
  2267                      allowAutoConverge:
  2268                        type: boolean
  2269                        description: AllowAutoConverge allows the platform to compromise performance/availability of VMIs to guarantee successful VMI live migrations. Defaults to false
  2270                      allowPostCopy:
  2271                        type: boolean
  2272                        description: AllowPostCopy enables post-copy live migrations. Such migrations allow even the busiest VMIs to successfully live-migrate. However, events like a network failure can cause a VMI crash. If set to true, migrations will still start in pre-copy, but switch to post-copy when CompletionTimeoutPerGiB triggers. Defaults to false
  2273                      bandwidthPerMigration:
  2274                        anyOf:
  2275                        - type: integer
  2276                        - type: string
  2277                        description: BandwidthPerMigration limits the amount of network bandwidth live migrations are allowed to use. The value is in quantity per second. Defaults to 0 (no limit)
  2278                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2279                        x-kubernetes-int-or-string: true
  2280                      completionTimeoutPerGiB:
  2281                        type: integer
  2282                        description: CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. If a live-migration takes longer to migrate than this value multiplied by the size of the VMI, the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800
  2283                        format: int64
  2284                      disableTLS:
  2285                        type: boolean
  2286                        description: When set to true, DisableTLS will disable the additional layer of live migration encryption provided by KubeVirt. This is usually a bad idea. Defaults to false
  2287                      matchSELinuxLevelOnMigration:
  2288                        type: boolean
  2289                        description: By default, the SELinux level of target virt-launcher pods is forced to the level of the source virt-launcher. When set to true, MatchSELinuxLevelOnMigration lets the CRI auto-assign a random level to the target. That will ensure the target virt-launcher doesn't share categories with another pod on the node. However, migrations will fail when using RWX volumes that don't automatically deal with SELinux levels.
  2290                      network:
  2291                        type: string
  2292                        description: Network is the name of the CNI network to use for live migrations. By default, migrations go through the pod network.
  2293                      nodeDrainTaintKey:
  2294                        type: string
  2295                        description: 'NodeDrainTaintKey defines the taint key that indicates a node should be drained. Note: this option relies on the deprecated node taint feature. Default: kubevirt.io/drain'
  2296                      parallelMigrationsPerCluster:
  2297                        type: integer
  2298                        description: ParallelMigrationsPerCluster is the total number of concurrent live migrations allowed cluster-wide. Defaults to 5
  2299                        format: int32
  2300                      parallelOutboundMigrationsPerNode:
  2301                        type: integer
  2302                        description: ParallelOutboundMigrationsPerNode is the maximum number of concurrent outgoing live migrations allowed per node. Defaults to 2
  2303                        format: int32
  2304                      progressTimeout:
  2305                        type: integer
  2306                        description: ProgressTimeout is the maximum number of seconds a live migration is allowed to make no progress. Hitting this timeout means a migration transferred 0 data for that many seconds. The migration is then considered stuck and therefore cancelled. Defaults to 150
  2307                        format: int64
  2308                      unsafeMigrationOverride:
  2309                        type: boolean
  2310                        description: UnsafeMigrationOverride allows live migrations to occur even if the compatibility check indicates the migration will be unsafe to the guest. Defaults to false
  2311                  migrationPolicyName:
  2312                    type: string
  2313                    description: Name of the migration policy. If string is empty, no policy is matched
  2314                  migrationUid:
  2315                    type: string
  2316                    description: The VirtualMachineInstanceMigration object associated with this migration
  2317                  mode:
  2318                    type: string
  2319                    description: Lets us know if the vmi is currently running pre or post copy migration
  2320                  sourceNode:
  2321                    type: string
  2322                    description: The source node that the VMI originated on
  2323                  startTimestamp:
  2324                    type: string
  2325                    description: The time the migration action began
  2326                    format: date-time
  2327                    nullable: true
  2328                  targetAttachmentPodUID:
  2329                    type: string
  2330                    description: The UID of the target attachment pod for hotplug volumes
  2331                  targetCPUSet:
  2332                    type: array
  2333                    description: If the VMI requires dedicated CPUs, this field will hold the dedicated CPU set on the target node
  2334                    items:
  2335                      type: integer
  2336                    x-kubernetes-list-type: atomic
  2337                  targetDirectMigrationNodePorts:
  2338                    type: object
  2339                    additionalProperties:
  2340                      type: integer
  2341                    description: The list of ports opened for live migration on the destination node
  2342                  targetNode:
  2343                    type: string
  2344                    description: The target node that the VMI is moving to
  2345                  targetNodeAddress:
  2346                    type: string
  2347                    description: The address of the target node to use for the migration
  2348                  targetNodeDomainDetected:
  2349                    type: boolean
  2350                    description: The Target Node has seen the Domain Start Event
  2351                  targetNodeDomainReadyTimestamp:
  2352                    type: string
  2353                    description: The timestamp at which the target node detects the domain is active
  2354                    format: date-time
  2355                  targetNodeTopology:
  2356                    type: string
  2357                    description: If the VMI requires dedicated CPUs, this field will hold the numa topology on the target node
  2358                  targetPod:
  2359                    type: string
  2360                    description: The target pod that the VMI is moving to
  2361              migrationTransport:
  2362                type: string
  2363                description: This represents the migration transport
  2364              phase:
  2365                type: string
  2366                description: Phase is the status of the VirtualMachineInstance in kubernetes world. It is not the VirtualMachineInstance status, but partially correlates to it.
  2367              phaseTransitionTimestamps:
  2368                type: array
  2369                description: PhaseTransitionTimestamp is the timestamp of when the last phase change occurred
  2370                items:
  2371                  type: object
  2372                  description: VirtualMachineInstancePhaseTransitionTimestamp gives a timestamp in relation to when a phase is set on a vmi
  2373                  properties:
  2374                    phase:
  2375                      type: string
  2376                      description: Phase is the status of the VirtualMachineInstance in kubernetes world. It is not the VirtualMachineInstance status, but partially correlates to it.
  2377                    phaseTransitionTimestamp:
  2378                      type: string
  2379                      description: PhaseTransitionTimestamp is the timestamp of when the phase change occurred
  2380                      format: date-time
  2381                x-kubernetes-list-type: atomic
  2382              qosClass:
  2383                type: string
  2384                description: 'The Quality of Service (QOS) classification assigned to the virtual machine instance based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md'
  2385              reason:
  2386                type: string
  2387                description: A brief CamelCase message indicating details about why the VMI is in this state. e.g. 'NodeUnresponsive'
  2388              runtimeUser:
  2389                type: integer
  2390                description: RuntimeUser is used to determine what user will be used in launcher
  2391                format: int64
  2392              selinuxContext:
  2393                type: string
  2394                description: SELinuxContext is the actual SELinux context of the virt-launcher pod
  2395              topologyHints:
  2396                type: object
  2397                properties:
  2398                  tscFrequency:
  2399                    type: integer
  2400                    format: int64
  2401              virtualMachineRevisionName:
  2402                type: string
  2403                description: VirtualMachineRevisionName is used to get the vm revision of the vmi when doing an online vm snapshot
  2404              volumeStatus:
  2405                type: array
  2406                description: VolumeStatus contains the statuses of all the volumes
  2407                items:
  2408                  type: object
  2409                  description: VolumeStatus represents information about the status of volumes attached to the VirtualMachineInstance.
  2410                  properties:
  2411                    name:
  2412                      type: string
  2413                      description: Name is the name of the volume
  2414                    hotplugVolume:
  2415                      type: object
  2416                      description: If the volume is hotplug, this will contain the hotplug status.
  2417                      properties:
  2418                        attachPodName:
  2419                          type: string
  2420                          description: AttachPodName is the name of the pod used to attach the volume to the node.
  2421                        attachPodUID:
  2422                          type: string
  2423                          description: AttachPodUID is the UID of the pod used to attach the volume to the node.
  2424                    memoryDumpVolume:
  2425                      type: object
  2426                      description: If the volume is memorydump volume, this will contain the memorydump info.
  2427                      properties:
  2428                        claimName:
  2429                          type: string
  2430                          description: ClaimName is the name of the pvc the memory was dumped to
  2431                        endTimestamp:
  2432                          type: string
  2433                          description: EndTimestamp is the time when the memory dump completed
  2434                          format: date-time
  2435                        startTimestamp:
  2436                          type: string
  2437                          description: StartTimestamp is the time when the memory dump started
  2438                          format: date-time
  2439                        targetFileName:
  2440                          type: string
  2441                          description: TargetFileName is the name of the memory dump output
  2442                    message:
  2443                      type: string
  2444                      description: Message is a detailed message about the current hotplug volume phase
  2445                    persistentVolumeClaimInfo:
  2446                      type: object
  2447                      description: PersistentVolumeClaimInfo is information about the PVC that handler requires during start flow
  2448                      properties:
  2449                        accessModes:
  2450                          type: array
  2451                          description: 'AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  2452                          items:
  2453                            type: string
  2454                          x-kubernetes-list-type: atomic
  2455                        capacity:
  2456                          type: object
  2457                          additionalProperties:
  2458                            anyOf:
  2459                            - type: integer
  2460                            - type: string
  2461                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2462                            x-kubernetes-int-or-string: true
  2463                          description: Capacity represents the capacity set on the corresponding PVC status
  2464                        filesystemOverhead:
  2465                          type: string
  2466                          description: Percentage of filesystem's size to be reserved when resizing the PVC
  2467                          pattern: ^(0(?:\.\d{1,3})?|1)$
  2468                        preallocated:
  2469                          type: boolean
  2470                          description: Preallocated indicates if the PVC's storage is preallocated or not
  2471                        requests:
  2472                          type: object
  2473                          additionalProperties:
  2474                            anyOf:
  2475                            - type: integer
  2476                            - type: string
  2477                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2478                            x-kubernetes-int-or-string: true
  2479                          description: Requests represents the resources requested by the corresponding PVC spec
  2480                        volumeMode:
  2481                          type: string
  2482                          description: VolumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  2483                    phase:
  2484                      type: string
  2485                      description: Phase is the phase
  2486                    reason:
  2487                      type: string
  2488                      description: Reason is a brief description of why we are in the current hotplug volume phase
  2489                    size:
  2490                      type: integer
  2491                      description: Represents the size of the volume
  2492                      format: int64
  2493                    target:
  2494                      type: string
  2495                      description: 'Target is the target name used when adding the volume to the VM, eg: vda'
  2496                  required:
  2497                  - name
  2498                  - target
  2499                x-kubernetes-list-type: atomic
  2500        required:
  2501        - spec
  2502    served: true
  2503    storage: true
  2504  - name: v1alpha3
  2505    additionalPrinterColumns:
  2506    - name: Age
  2507      type: date
  2508      jsonPath: .metadata.creationTimestamp
  2509    - name: Phase
  2510      type: string
  2511      jsonPath: .status.phase
  2512    - name: IP
  2513      type: string
  2514      jsonPath: .status.interfaces[0].ipAddress
  2515    - name: NodeName
  2516      type: string
  2517      jsonPath: .status.nodeName
  2518    - name: Ready
  2519      type: string
  2520      jsonPath: .status.conditions[?(@.type=='Ready')].status
  2521    - name: Live-Migratable
  2522      type: string
  2523      priority: 1
  2524      jsonPath: .status.conditions[?(@.type=='LiveMigratable')].status
  2525    - name: Paused
  2526      type: string
  2527      priority: 1
  2528      jsonPath: .status.conditions[?(@.type=='Paused')].status
  2529    deprecated: true
  2530    deprecationWarning: kubevirt.io/v1alpha3 is now deprecated and will be removed in a future release.
  2531    schema:
  2532      openAPIV3Schema:
  2533        type: object
  2534        description: VirtualMachineInstance is *the* VirtualMachineInstance Definition. It represents a virtual machine in the runtime environment of kubernetes.
  2535        properties:
  2536          apiVersion:
  2537            type: string
  2538            description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2539          kind:
  2540            type: string
  2541            description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2542          metadata:
  2543            type: object
  2544          spec:
  2545            type: object
  2546            description: VirtualMachineInstance Spec contains the VirtualMachineInstance specification.
  2547            properties:
  2548              terminationGracePeriodSeconds:
  2549                type: integer
  2550                description: Grace period observed after signalling a VirtualMachineInstance to stop after which the VirtualMachineInstance is force terminated.
  2551                format: int64
  2552              dnsPolicy:
  2553                type: string
  2554                description: Set DNS policy for the pod. Defaults to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.
  2555              hostname:
  2556                type: string
  2557                description: Specifies the hostname of the vmi If not specified, the hostname will be set to the name of the vmi, if dhcp or cloud-init is configured properly.
  2558              subdomain:
  2559                type: string
  2560                description: If specified, the fully qualified vmi hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>". If not specified, the vmi will not have a domainname at all. The DNS entry will resolve to the vmi, no matter if the vmi itself can pick up a hostname.
  2561              schedulerName:
  2562                type: string
  2563                description: If specified, the VMI will be dispatched by specified scheduler. If not specified, the VMI will be dispatched by default scheduler.
  2564              priorityClassName:
  2565                type: string
  2566                description: If specified, indicates the pod's priority. If not specified, the pod priority will be default or zero if there is no default.
  2567              nodeSelector:
  2568                type: object
  2569                additionalProperties:
  2570                  type: string
  2571                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/'
  2572              volumes:
  2573                type: array
  2574                description: List of volumes that can be mounted by disks belonging to the vmi.
  2575                items:
  2576                  type: object
  2577                  description: Volume represents a named volume in a vmi.
  2578                  properties:
  2579                    name:
  2580                      type: string
  2581                      description: 'Volume''s name. Must be a DNS_LABEL and unique within the vmi. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2582                    serviceAccount:
  2583                      type: object
  2584                      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/'
  2585                      properties:
  2586                        serviceAccountName:
  2587                          type: string
  2588                          description: 'Name of the service account in the pod''s namespace to use. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/'
  2589                    cloudInitConfigDrive:
  2590                      type: object
  2591                      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'
  2592                      properties:
  2593                        secretRef:
  2594                          type: object
  2595                          description: UserDataSecretRef references a k8s secret that contains config drive userdata.
  2596                          properties:
  2597                            name:
  2598                              type: string
  2599                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  2600                        networkData:
  2601                          type: string
  2602                          description: NetworkData contains config drive inline cloud-init networkdata.
  2603                        networkDataBase64:
  2604                          type: string
  2605                          description: NetworkDataBase64 contains config drive cloud-init networkdata as a base64 encoded string.
  2606                        networkDataSecretRef:
  2607                          type: object
  2608                          description: NetworkDataSecretRef references a k8s secret that contains config drive networkdata.
  2609                          properties:
  2610                            name:
  2611                              type: string
  2612                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  2613                        userData:
  2614                          type: string
  2615                          description: UserData contains config drive inline cloud-init userdata.
  2616                        userDataBase64:
  2617                          type: string
  2618                          description: UserDataBase64 contains config drive cloud-init userdata as a base64 encoded string.
  2619                    cloudInitNoCloud:
  2620                      type: object
  2621                      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'
  2622                      properties:
  2623                        secretRef:
  2624                          type: object
  2625                          description: UserDataSecretRef references a k8s secret that contains NoCloud userdata.
  2626                          properties:
  2627                            name:
  2628                              type: string
  2629                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  2630                        networkData:
  2631                          type: string
  2632                          description: NetworkData contains NoCloud inline cloud-init networkdata.
  2633                        networkDataBase64:
  2634                          type: string
  2635                          description: NetworkDataBase64 contains NoCloud cloud-init networkdata as a base64 encoded string.
  2636                        networkDataSecretRef:
  2637                          type: object
  2638                          description: NetworkDataSecretRef references a k8s secret that contains NoCloud networkdata.
  2639                          properties:
  2640                            name:
  2641                              type: string
  2642                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  2643                        userData:
  2644                          type: string
  2645                          description: UserData contains NoCloud inline cloud-init userdata.
  2646                        userDataBase64:
  2647                          type: string
  2648                          description: UserDataBase64 contains NoCloud cloud-init userdata as a base64 encoded string.
  2649                    configMap:
  2650                      type: object
  2651                      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/'
  2652                      properties:
  2653                        name:
  2654                          type: string
  2655                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  2656                        optional:
  2657                          type: boolean
  2658                          description: Specify whether the ConfigMap or it's keys must be defined
  2659                        volumeLabel:
  2660                          type: string
  2661                          description: The volume label of the resulting disk inside the VMI. Different bootstrapping mechanisms require different values. Typical values are "cidata" (cloud-init), "config-2" (cloud-init) or "OEMDRV" (kickstart).
  2662                    containerDisk:
  2663                      type: object
  2664                      description: 'ContainerDisk references a docker image, embedding a qcow or raw disk. More info: https://kubevirt.gitbooks.io/user-guide/registry-disk.html'
  2665                      properties:
  2666                        image:
  2667                          type: string
  2668                          description: Image is the name of the image with the embedded disk.
  2669                        imagePullPolicy:
  2670                          type: string
  2671                          description: 'Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
  2672                        imagePullSecret:
  2673                          type: string
  2674                          description: ImagePullSecret is the name of the Docker registry secret required to pull the image. The secret must already exist.
  2675                        path:
  2676                          type: string
  2677                          description: Path defines the path to disk file in the container
  2678                      required:
  2679                      - image
  2680                    dataVolume:
  2681                      type: object
  2682                      description: DataVolume represents the dynamic creation a PVC for this volume as well as the process of populating that PVC with a disk image.
  2683                      properties:
  2684                        name:
  2685                          type: string
  2686                          description: Name of both the DataVolume and the PVC in the same namespace. After PVC population the DataVolume is garbage collected by default.
  2687                        hotpluggable:
  2688                          type: boolean
  2689                          description: Hotpluggable indicates whether the volume can be hotplugged and hotunplugged.
  2690                      required:
  2691                      - name
  2692                    downwardAPI:
  2693                      type: object
  2694                      description: DownwardAPI represents downward API about the pod that should populate this volume
  2695                      properties:
  2696                        fields:
  2697                          type: array
  2698                          description: Fields is a list of downward API volume file
  2699                          items:
  2700                            type: object
  2701                            description: DownwardAPIVolumeFile represents information to create the file containing the pod field
  2702                            properties:
  2703                              fieldRef:
  2704                                type: object
  2705                                description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.'
  2706                                properties:
  2707                                  apiVersion:
  2708                                    type: string
  2709                                    description: Version of the schema the FieldPath is written in terms of, defaults to "v1".
  2710                                  fieldPath:
  2711                                    type: string
  2712                                    description: Path of the field to select in the specified API version.
  2713                                required:
  2714                                - fieldPath
  2715                              resourceFieldRef:
  2716                                type: object
  2717                                description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.'
  2718                                properties:
  2719                                  containerName:
  2720                                    type: string
  2721                                    description: 'Container name: required for volumes, optional for env vars'
  2722                                  divisor:
  2723                                    anyOf:
  2724                                    - type: integer
  2725                                    - type: string
  2726                                    description: Specifies the output format of the exposed resources, defaults to "1"
  2727                                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2728                                    x-kubernetes-int-or-string: true
  2729                                  resource:
  2730                                    type: string
  2731                                    description: 'Required: resource to select'
  2732                                required:
  2733                                - resource
  2734                              mode:
  2735                                type: integer
  2736                                description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.'
  2737                                format: int32
  2738                              path:
  2739                                type: string
  2740                                description: 'Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..'''
  2741                            required:
  2742                            - path
  2743                        volumeLabel:
  2744                          type: string
  2745                          description: The volume label of the resulting disk inside the VMI. Different bootstrapping mechanisms require different values. Typical values are "cidata" (cloud-init), "config-2" (cloud-init) or "OEMDRV" (kickstart).
  2746                    downwardMetrics:
  2747                      type: object
  2748                      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.
  2749                    emptyDisk:
  2750                      type: object
  2751                      description: 'EmptyDisk represents a temporary disk which shares the vmis lifecycle. More info: https://kubevirt.gitbooks.io/user-guide/disks-and-volumes.html'
  2752                      properties:
  2753                        capacity:
  2754                          anyOf:
  2755                          - type: integer
  2756                          - type: string
  2757                          description: Capacity of the sparse disk.
  2758                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2759                          x-kubernetes-int-or-string: true
  2760                      required:
  2761                      - capacity
  2762                    ephemeral:
  2763                      type: object
  2764                      description: Ephemeral is a special volume source that "wraps" specified source and provides copy-on-write image on top of it.
  2765                      properties:
  2766                        persistentVolumeClaim:
  2767                          type: object
  2768                          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'
  2769                          properties:
  2770                            readOnly:
  2771                              type: boolean
  2772                              description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  2773                            claimName:
  2774                              type: string
  2775                              description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  2776                          required:
  2777                          - claimName
  2778                    hostDisk:
  2779                      type: object
  2780                      description: HostDisk represents a disk created on the cluster level
  2781                      properties:
  2782                        type:
  2783                          type: string
  2784                          description: Contains information if disk.img exists or should be created allowed options are 'Disk' and 'DiskOrCreate'
  2785                        capacity:
  2786                          anyOf:
  2787                          - type: integer
  2788                          - type: string
  2789                          description: Capacity of the sparse disk
  2790                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  2791                          x-kubernetes-int-or-string: true
  2792                        path:
  2793                          type: string
  2794                          description: The path to HostDisk image located on the cluster
  2795                        shared:
  2796                          type: boolean
  2797                          description: Shared indicate whether the path is shared between nodes
  2798                      required:
  2799                      - path
  2800                      - type
  2801                    memoryDump:
  2802                      type: object
  2803                      description: MemoryDump is attached to the virt launcher and is populated with a memory dump of the vmi
  2804                      properties:
  2805                        readOnly:
  2806                          type: boolean
  2807                          description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  2808                        claimName:
  2809                          type: string
  2810                          description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  2811                        hotpluggable:
  2812                          type: boolean
  2813                          description: Hotpluggable indicates whether the volume can be hotplugged and hotunplugged.
  2814                      required:
  2815                      - claimName
  2816                    persistentVolumeClaim:
  2817                      type: object
  2818                      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'
  2819                      properties:
  2820                        readOnly:
  2821                          type: boolean
  2822                          description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false.
  2823                        claimName:
  2824                          type: string
  2825                          description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims'
  2826                        hotpluggable:
  2827                          type: boolean
  2828                          description: Hotpluggable indicates whether the volume can be hotplugged and hotunplugged.
  2829                      required:
  2830                      - claimName
  2831                    secret:
  2832                      type: object
  2833                      description: 'SecretVolumeSource represents a reference to a secret data in the same namespace. More info: https://kubernetes.io/docs/concepts/configuration/secret/'
  2834                      properties:
  2835                        optional:
  2836                          type: boolean
  2837                          description: Specify whether the Secret or it's keys must be defined
  2838                        secretName:
  2839                          type: string
  2840                          description: 'Name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret'
  2841                        volumeLabel:
  2842                          type: string
  2843                          description: The volume label of the resulting disk inside the VMI. Different bootstrapping mechanisms require different values. Typical values are "cidata" (cloud-init), "config-2" (cloud-init) or "OEMDRV" (kickstart).
  2844                    sysprep:
  2845                      type: object
  2846                      description: Represents a Sysprep volume source.
  2847                      properties:
  2848                        configMap:
  2849                          type: object
  2850                          description: ConfigMap references a ConfigMap that contains Sysprep answer file named autounattend.xml that should be attached as disk of CDROM type.
  2851                          properties:
  2852                            name:
  2853                              type: string
  2854                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  2855                        secret:
  2856                          type: object
  2857                          description: Secret references a k8s Secret that contains Sysprep answer file named autounattend.xml that should be attached as disk of CDROM type.
  2858                          properties:
  2859                            name:
  2860                              type: string
  2861                              description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
  2862                  required:
  2863                  - name
  2864              affinity:
  2865                type: object
  2866                description: If affinity is specifies, obey all the affinity rules
  2867                properties:
  2868                  nodeAffinity:
  2869                    type: object
  2870                    description: Describes node affinity scheduling rules for the pod.
  2871                    properties:
  2872                      preferredDuringSchedulingIgnoredDuringExecution:
  2873                        type: array
  2874                        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.
  2875                        items:
  2876                          type: object
  2877                          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).
  2878                          properties:
  2879                            preference:
  2880                              type: object
  2881                              description: A node selector term, associated with the corresponding weight.
  2882                              properties:
  2883                                matchExpressions:
  2884                                  type: array
  2885                                  description: A list of node selector requirements by node's labels.
  2886                                  items:
  2887                                    type: object
  2888                                    description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2889                                    properties:
  2890                                      key:
  2891                                        type: string
  2892                                        description: The label key that the selector applies to.
  2893                                      operator:
  2894                                        type: string
  2895                                        description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2896                                      values:
  2897                                        type: array
  2898                                        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.
  2899                                        items:
  2900                                          type: string
  2901                                    required:
  2902                                    - key
  2903                                    - operator
  2904                                matchFields:
  2905                                  type: array
  2906                                  description: A list of node selector requirements by node's fields.
  2907                                  items:
  2908                                    type: object
  2909                                    description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2910                                    properties:
  2911                                      key:
  2912                                        type: string
  2913                                        description: The label key that the selector applies to.
  2914                                      operator:
  2915                                        type: string
  2916                                        description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2917                                      values:
  2918                                        type: array
  2919                                        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.
  2920                                        items:
  2921                                          type: string
  2922                                    required:
  2923                                    - key
  2924                                    - operator
  2925                            weight:
  2926                              type: integer
  2927                              description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
  2928                              format: int32
  2929                          required:
  2930                          - preference
  2931                          - weight
  2932                      requiredDuringSchedulingIgnoredDuringExecution:
  2933                        type: object
  2934                        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.
  2935                        properties:
  2936                          nodeSelectorTerms:
  2937                            type: array
  2938                            description: Required. A list of node selector terms. The terms are ORed.
  2939                            items:
  2940                              type: object
  2941                              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.
  2942                              properties:
  2943                                matchExpressions:
  2944                                  type: array
  2945                                  description: A list of node selector requirements by node's labels.
  2946                                  items:
  2947                                    type: object
  2948                                    description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2949                                    properties:
  2950                                      key:
  2951                                        type: string
  2952                                        description: The label key that the selector applies to.
  2953                                      operator:
  2954                                        type: string
  2955                                        description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2956                                      values:
  2957                                        type: array
  2958                                        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.
  2959                                        items:
  2960                                          type: string
  2961                                    required:
  2962                                    - key
  2963                                    - operator
  2964                                matchFields:
  2965                                  type: array
  2966                                  description: A list of node selector requirements by node's fields.
  2967                                  items:
  2968                                    type: object
  2969                                    description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  2970                                    properties:
  2971                                      key:
  2972                                        type: string
  2973                                        description: The label key that the selector applies to.
  2974                                      operator:
  2975                                        type: string
  2976                                        description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
  2977                                      values:
  2978                                        type: array
  2979                                        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.
  2980                                        items:
  2981                                          type: string
  2982                                    required:
  2983                                    - key
  2984                                    - operator
  2985                        required:
  2986                        - nodeSelectorTerms
  2987                  podAffinity:
  2988                    type: object
  2989                    description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
  2990                    properties:
  2991                      preferredDuringSchedulingIgnoredDuringExecution:
  2992                        type: array
  2993                        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.
  2994                        items:
  2995                          type: object
  2996                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  2997                          properties:
  2998                            podAffinityTerm:
  2999                              type: object
  3000                              description: Required. A pod affinity term, associated with the corresponding weight.
  3001                              properties:
  3002                                labelSelector:
  3003                                  type: object
  3004                                  description: A label query over a set of resources, in this case pods.
  3005                                  properties:
  3006                                    matchExpressions:
  3007                                      type: array
  3008                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3009                                      items:
  3010                                        type: object
  3011                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3012                                        properties:
  3013                                          key:
  3014                                            type: string
  3015                                            description: key is the label key that the selector applies to.
  3016                                          operator:
  3017                                            type: string
  3018                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3019                                          values:
  3020                                            type: array
  3021                                            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.
  3022                                            items:
  3023                                              type: string
  3024                                        required:
  3025                                        - key
  3026                                        - operator
  3027                                    matchLabels:
  3028                                      type: object
  3029                                      additionalProperties:
  3030                                        type: string
  3031                                      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.
  3032                                namespaceSelector:
  3033                                  type: object
  3034                                  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.
  3035                                  properties:
  3036                                    matchExpressions:
  3037                                      type: array
  3038                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3039                                      items:
  3040                                        type: object
  3041                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3042                                        properties:
  3043                                          key:
  3044                                            type: string
  3045                                            description: key is the label key that the selector applies to.
  3046                                          operator:
  3047                                            type: string
  3048                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3049                                          values:
  3050                                            type: array
  3051                                            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.
  3052                                            items:
  3053                                              type: string
  3054                                        required:
  3055                                        - key
  3056                                        - operator
  3057                                    matchLabels:
  3058                                      type: object
  3059                                      additionalProperties:
  3060                                        type: string
  3061                                      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.
  3062                                namespaces:
  3063                                  type: array
  3064                                  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".
  3065                                  items:
  3066                                    type: string
  3067                                topologyKey:
  3068                                  type: string
  3069                                  description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, 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 any of the selected pods is running. Empty topologyKey is not allowed.
  3070                              required:
  3071                              - topologyKey
  3072                            weight:
  3073                              type: integer
  3074                              description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  3075                              format: int32
  3076                          required:
  3077                          - podAffinityTerm
  3078                          - weight
  3079                      requiredDuringSchedulingIgnoredDuringExecution:
  3080                        type: array
  3081                        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.
  3082                        items:
  3083                          type: object
  3084                          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
  3085                          properties:
  3086                            labelSelector:
  3087                              type: object
  3088                              description: A label query over a set of resources, in this case pods.
  3089                              properties:
  3090                                matchExpressions:
  3091                                  type: array
  3092                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3093                                  items:
  3094                                    type: object
  3095                                    description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3096                                    properties:
  3097                                      key:
  3098                                        type: string
  3099                                        description: key is the label key that the selector applies to.
  3100                                      operator:
  3101                                        type: string
  3102                                        description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3103                                      values:
  3104                                        type: array
  3105                                        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.
  3106                                        items:
  3107                                          type: string
  3108                                    required:
  3109                                    - key
  3110                                    - operator
  3111                                matchLabels:
  3112                                  type: object
  3113                                  additionalProperties:
  3114                                    type: string
  3115                                  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.
  3116                            namespaceSelector:
  3117                              type: object
  3118                              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.
  3119                              properties:
  3120                                matchExpressions:
  3121                                  type: array
  3122                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3123                                  items:
  3124                                    type: object
  3125                                    description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3126                                    properties:
  3127                                      key:
  3128                                        type: string
  3129                                        description: key is the label key that the selector applies to.
  3130                                      operator:
  3131                                        type: string
  3132                                        description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3133                                      values:
  3134                                        type: array
  3135                                        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.
  3136                                        items:
  3137                                          type: string
  3138                                    required:
  3139                                    - key
  3140                                    - operator
  3141                                matchLabels:
  3142                                  type: object
  3143                                  additionalProperties:
  3144                                    type: string
  3145                                  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.
  3146                            namespaces:
  3147                              type: array
  3148                              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".
  3149                              items:
  3150                                type: string
  3151                            topologyKey:
  3152                              type: string
  3153                              description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, 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 any of the selected pods is running. Empty topologyKey is not allowed.
  3154                          required:
  3155                          - topologyKey
  3156                  podAntiAffinity:
  3157                    type: object
  3158                    description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
  3159                    properties:
  3160                      preferredDuringSchedulingIgnoredDuringExecution:
  3161                        type: array
  3162                        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.
  3163                        items:
  3164                          type: object
  3165                          description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
  3166                          properties:
  3167                            podAffinityTerm:
  3168                              type: object
  3169                              description: Required. A pod affinity term, associated with the corresponding weight.
  3170                              properties:
  3171                                labelSelector:
  3172                                  type: object
  3173                                  description: A label query over a set of resources, in this case pods.
  3174                                  properties:
  3175                                    matchExpressions:
  3176                                      type: array
  3177                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3178                                      items:
  3179                                        type: object
  3180                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3181                                        properties:
  3182                                          key:
  3183                                            type: string
  3184                                            description: key is the label key that the selector applies to.
  3185                                          operator:
  3186                                            type: string
  3187                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3188                                          values:
  3189                                            type: array
  3190                                            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.
  3191                                            items:
  3192                                              type: string
  3193                                        required:
  3194                                        - key
  3195                                        - operator
  3196                                    matchLabels:
  3197                                      type: object
  3198                                      additionalProperties:
  3199                                        type: string
  3200                                      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.
  3201                                namespaceSelector:
  3202                                  type: object
  3203                                  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.
  3204                                  properties:
  3205                                    matchExpressions:
  3206                                      type: array
  3207                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3208                                      items:
  3209                                        type: object
  3210                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3211                                        properties:
  3212                                          key:
  3213                                            type: string
  3214                                            description: key is the label key that the selector applies to.
  3215                                          operator:
  3216                                            type: string
  3217                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3218                                          values:
  3219                                            type: array
  3220                                            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.
  3221                                            items:
  3222                                              type: string
  3223                                        required:
  3224                                        - key
  3225                                        - operator
  3226                                    matchLabels:
  3227                                      type: object
  3228                                      additionalProperties:
  3229                                        type: string
  3230                                      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.
  3231                                namespaces:
  3232                                  type: array
  3233                                  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".
  3234                                  items:
  3235                                    type: string
  3236                                topologyKey:
  3237                                  type: string
  3238                                  description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, 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 any of the selected pods is running. Empty topologyKey is not allowed.
  3239                              required:
  3240                              - topologyKey
  3241                            weight:
  3242                              type: integer
  3243                              description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
  3244                              format: int32
  3245                          required:
  3246                          - podAffinityTerm
  3247                          - weight
  3248                      requiredDuringSchedulingIgnoredDuringExecution:
  3249                        type: array
  3250                        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.
  3251                        items:
  3252                          type: object
  3253                          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
  3254                          properties:
  3255                            labelSelector:
  3256                              type: object
  3257                              description: A label query over a set of resources, in this case pods.
  3258                              properties:
  3259                                matchExpressions:
  3260                                  type: array
  3261                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3262                                  items:
  3263                                    type: object
  3264                                    description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3265                                    properties:
  3266                                      key:
  3267                                        type: string
  3268                                        description: key is the label key that the selector applies to.
  3269                                      operator:
  3270                                        type: string
  3271                                        description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3272                                      values:
  3273                                        type: array
  3274                                        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.
  3275                                        items:
  3276                                          type: string
  3277                                    required:
  3278                                    - key
  3279                                    - operator
  3280                                matchLabels:
  3281                                  type: object
  3282                                  additionalProperties:
  3283                                    type: string
  3284                                  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.
  3285                            namespaceSelector:
  3286                              type: object
  3287                              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.
  3288                              properties:
  3289                                matchExpressions:
  3290                                  type: array
  3291                                  description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  3292                                  items:
  3293                                    type: object
  3294                                    description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  3295                                    properties:
  3296                                      key:
  3297                                        type: string
  3298                                        description: key is the label key that the selector applies to.
  3299                                      operator:
  3300                                        type: string
  3301                                        description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  3302                                      values:
  3303                                        type: array
  3304                                        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.
  3305                                        items:
  3306                                          type: string
  3307                                    required:
  3308                                    - key
  3309                                    - operator
  3310                                matchLabels:
  3311                                  type: object
  3312                                  additionalProperties:
  3313                                    type: string
  3314                                  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.
  3315                            namespaces:
  3316                              type: array
  3317                              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".
  3318                              items:
  3319                                type: string
  3320                            topologyKey:
  3321                              type: string
  3322                              description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, 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 any of the selected pods is running. Empty topologyKey is not allowed.
  3323                          required:
  3324                          - topologyKey
  3325              tolerations:
  3326                type: array
  3327                description: If toleration is specified, obey all the toleration rules.
  3328                items:
  3329                  type: object
  3330                  description: The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.
  3331                  properties:
  3332                    value:
  3333                      type: string
  3334                      description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
  3335                    effect:
  3336                      type: string
  3337                      description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
  3338                    key:
  3339                      type: string
  3340                      description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
  3341                    operator:
  3342                      type: string
  3343                      description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
  3344                    tolerationSeconds:
  3345                      type: integer
  3346                      description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
  3347                      format: int64
  3348              dnsConfig:
  3349                type: object
  3350                description: Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.
  3351                properties:
  3352                  nameservers:
  3353                    type: array
  3354                    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.
  3355                    items:
  3356                      type: string
  3357                  options:
  3358                    type: array
  3359                    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.
  3360                    items:
  3361                      type: object
  3362                      description: PodDNSConfigOption defines DNS resolver options of a pod.
  3363                      properties:
  3364                        name:
  3365                          type: string
  3366                          description: Required.
  3367                        value:
  3368                          type: string
  3369                  searches:
  3370                    type: array
  3371                    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.
  3372                    items:
  3373                      type: string
  3374              livenessProbe:
  3375                type: object
  3376                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'
  3377                properties:
  3378                  exec:
  3379                    type: object
  3380                    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.
  3381                    properties:
  3382                      command:
  3383                        type: array
  3384                        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.
  3385                        items:
  3386                          type: string
  3387                  failureThreshold:
  3388                    type: integer
  3389                    description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  3390                    format: int32
  3391                  guestAgentPing:
  3392                    type: object
  3393                    description: GuestAgentPing contacts the qemu-guest-agent for availability checks.
  3394                  httpGet:
  3395                    type: object
  3396                    description: HTTPGet specifies the http request to perform.
  3397                    properties:
  3398                      port:
  3399                        anyOf:
  3400                        - type: integer
  3401                        - type: string
  3402                        description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  3403                        x-kubernetes-int-or-string: true
  3404                      host:
  3405                        type: string
  3406                        description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  3407                      httpHeaders:
  3408                        type: array
  3409                        description: Custom headers to set in the request. HTTP allows repeated headers.
  3410                        items:
  3411                          type: object
  3412                          description: HTTPHeader describes a custom header to be used in HTTP probes
  3413                          properties:
  3414                            name:
  3415                              type: string
  3416                              description: The header field name
  3417                            value:
  3418                              type: string
  3419                              description: The header field value
  3420                          required:
  3421                          - name
  3422                          - value
  3423                      path:
  3424                        type: string
  3425                        description: Path to access on the HTTP server.
  3426                      scheme:
  3427                        type: string
  3428                        description: Scheme to use for connecting to the host. Defaults to HTTP.
  3429                    required:
  3430                    - port
  3431                  initialDelaySeconds:
  3432                    type: integer
  3433                    description: 'Number of seconds after the VirtualMachineInstance has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  3434                    format: int32
  3435                  periodSeconds:
  3436                    type: integer
  3437                    description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  3438                    format: int32
  3439                  successThreshold:
  3440                    type: integer
  3441                    description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
  3442                    format: int32
  3443                  tcpSocket:
  3444                    type: object
  3445                    description: 'TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook'
  3446                    properties:
  3447                      port:
  3448                        anyOf:
  3449                        - type: integer
  3450                        - type: string
  3451                        description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  3452                        x-kubernetes-int-or-string: true
  3453                      host:
  3454                        type: string
  3455                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
  3456                    required:
  3457                    - port
  3458                  timeoutSeconds:
  3459                    type: integer
  3460                    description: 'Number of seconds after which the probe times out. For exec probes the timeout fails the probe but does not terminate the command running on the guest. This means a blocking command can result in an increasing load on the guest. A small buffer will be added to the resulting workload exec probe to compensate for delays caused by the qemu guest exec mechanism. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  3461                    format: int32
  3462              readinessProbe:
  3463                type: object
  3464                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'
  3465                properties:
  3466                  exec:
  3467                    type: object
  3468                    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.
  3469                    properties:
  3470                      command:
  3471                        type: array
  3472                        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.
  3473                        items:
  3474                          type: string
  3475                  failureThreshold:
  3476                    type: integer
  3477                    description: Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
  3478                    format: int32
  3479                  guestAgentPing:
  3480                    type: object
  3481                    description: GuestAgentPing contacts the qemu-guest-agent for availability checks.
  3482                  httpGet:
  3483                    type: object
  3484                    description: HTTPGet specifies the http request to perform.
  3485                    properties:
  3486                      port:
  3487                        anyOf:
  3488                        - type: integer
  3489                        - type: string
  3490                        description: Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  3491                        x-kubernetes-int-or-string: true
  3492                      host:
  3493                        type: string
  3494                        description: Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.
  3495                      httpHeaders:
  3496                        type: array
  3497                        description: Custom headers to set in the request. HTTP allows repeated headers.
  3498                        items:
  3499                          type: object
  3500                          description: HTTPHeader describes a custom header to be used in HTTP probes
  3501                          properties:
  3502                            name:
  3503                              type: string
  3504                              description: The header field name
  3505                            value:
  3506                              type: string
  3507                              description: The header field value
  3508                          required:
  3509                          - name
  3510                          - value
  3511                      path:
  3512                        type: string
  3513                        description: Path to access on the HTTP server.
  3514                      scheme:
  3515                        type: string
  3516                        description: Scheme to use for connecting to the host. Defaults to HTTP.
  3517                    required:
  3518                    - port
  3519                  initialDelaySeconds:
  3520                    type: integer
  3521                    description: 'Number of seconds after the VirtualMachineInstance has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  3522                    format: int32
  3523                  periodSeconds:
  3524                    type: integer
  3525                    description: How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.
  3526                    format: int32
  3527                  successThreshold:
  3528                    type: integer
  3529                    description: Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.
  3530                    format: int32
  3531                  tcpSocket:
  3532                    type: object
  3533                    description: 'TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported TODO: implement a realistic TCP lifecycle hook'
  3534                    properties:
  3535                      port:
  3536                        anyOf:
  3537                        - type: integer
  3538                        - type: string
  3539                        description: Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
  3540                        x-kubernetes-int-or-string: true
  3541                      host:
  3542                        type: string
  3543                        description: 'Optional: Host name to connect to, defaults to the pod IP.'
  3544                    required:
  3545                    - port
  3546                  timeoutSeconds:
  3547                    type: integer
  3548                    description: 'Number of seconds after which the probe times out. For exec probes the timeout fails the probe but does not terminate the command running on the guest. This means a blocking command can result in an increasing load on the guest. A small buffer will be added to the resulting workload exec probe to compensate for delays caused by the qemu guest exec mechanism. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
  3549                    format: int32
  3550              accessCredentials:
  3551                type: array
  3552                description: Specifies a set of public keys to inject into the vm guest
  3553                items:
  3554                  type: object
  3555                  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.
  3556                  properties:
  3557                    sshPublicKey:
  3558                      type: object
  3559                      description: SSHPublicKey represents the source and method of applying a ssh public key into a guest virtual machine.
  3560                      properties:
  3561                        propagationMethod:
  3562                          type: object
  3563                          description: PropagationMethod represents how the public key is injected into the vm guest.
  3564                          properties:
  3565                            configDrive:
  3566                              type: object
  3567                              description: ConfigDrivePropagation means that the ssh public keys are injected into the VM using metadata using the configDrive cloud-init provider
  3568                            noCloud:
  3569                              type: object
  3570                              description: NoCloudPropagation means that the ssh public keys are injected into the VM using metadata using the noCloud cloud-init provider
  3571                            qemuGuestAgent:
  3572                              type: object
  3573                              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.
  3574                              properties:
  3575                                users:
  3576                                  type: array
  3577                                  description: Users represents a list of guest users that should have the ssh public keys added to their authorized_keys file.
  3578                                  items:
  3579                                    type: string
  3580                                  x-kubernetes-list-type: set
  3581                              required:
  3582                              - users
  3583                        source:
  3584                          type: object
  3585                          description: Source represents where the public keys are pulled from
  3586                          properties:
  3587                            secret:
  3588                              type: object
  3589                              description: Secret means that the access credential is pulled from a kubernetes secret
  3590                              properties:
  3591                                secretName:
  3592                                  type: string
  3593                                  description: SecretName represents the name of the secret in the VMI's namespace
  3594                              required:
  3595                              - secretName
  3596                      required:
  3597                      - propagationMethod
  3598                      - source
  3599                    userPassword:
  3600                      type: object
  3601                      description: UserPassword represents the source and method for applying a guest user's password
  3602                      properties:
  3603                        propagationMethod:
  3604                          type: object
  3605                          description: propagationMethod represents how the user passwords are injected into the vm guest.
  3606                          properties:
  3607                            qemuGuestAgent:
  3608                              type: object
  3609                              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.
  3610                        source:
  3611                          type: object
  3612                          description: Source represents where the user passwords are pulled from
  3613                          properties:
  3614                            secret:
  3615                              type: object
  3616                              description: Secret means that the access credential is pulled from a kubernetes secret
  3617                              properties:
  3618                                secretName:
  3619                                  type: string
  3620                                  description: SecretName represents the name of the secret in the VMI's namespace
  3621                              required:
  3622                              - secretName
  3623                      required:
  3624                      - propagationMethod
  3625                      - source
  3626                x-kubernetes-list-type: atomic
  3627              architecture:
  3628                type: string
  3629                description: Specifies the architecture of the vm guest you are attempting to run. Defaults to the compiled architecture of the KubeVirt components
  3630              domain:
  3631                type: object
  3632                description: Specification of the desired behavior of the VirtualMachineInstance on the host.
  3633                properties:
  3634                  resources:
  3635                    type: object
  3636                    description: Resources describes the Compute Resources required by this vmi.
  3637                    properties:
  3638                      limits:
  3639                        type: object
  3640                        additionalProperties:
  3641                          anyOf:
  3642                          - type: integer
  3643                          - type: string
  3644                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3645                          x-kubernetes-int-or-string: true
  3646                        description: Limits describes the maximum amount of compute resources allowed. Valid resource keys are "memory" and "cpu".
  3647                      overcommitGuestOverhead:
  3648                        type: boolean
  3649                        description: Don't ask the scheduler to take the guest-management overhead into account. Instead put the overhead only into the container's memory limit. This can lead to crashes if all memory is in use on a node. Defaults to false.
  3650                      requests:
  3651                        type: object
  3652                        additionalProperties:
  3653                          anyOf:
  3654                          - type: integer
  3655                          - type: string
  3656                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  3657                          x-kubernetes-int-or-string: true
  3658                        description: Requests is a description of the initial vmi resources. Valid resource keys are "memory" and "cpu".
  3659                  chassis:
  3660                    type: object
  3661                    description: Chassis specifies the chassis info passed to the domain.
  3662                    properties:
  3663                      asset:
  3664                        type: string
  3665                      manufacturer:
  3666                        type: string
  3667                      serial:
  3668                        type: string
  3669                      sku:
  3670                        type: string
  3671                      version:
  3672                        type: string
  3673                  clock:
  3674                    type: object
  3675                    description: Clock sets the clock and timers of the vmi.
  3676                    properties:
  3677                      timer:
  3678                        type: object
  3679                        description: Timer specifies whih timers are attached to the vmi.
  3680                        properties:
  3681                          hpet:
  3682                            type: object
  3683                            description: HPET (High Precision Event Timer) - multiple timers with periodic interrupts.
  3684                            properties:
  3685                              present:
  3686                                type: boolean
  3687                                description: Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true.
  3688                              tickPolicy:
  3689                                type: string
  3690                                description: TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest. One of "delay", "catchup", "merge", "discard".
  3691                          hyperv:
  3692                            type: object
  3693                            description: Hyperv (Hypervclock) - lets guests read the host’s wall clock time (paravirtualized). For windows guests.
  3694                            properties:
  3695                              present:
  3696                                type: boolean
  3697                                description: Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true.
  3698                          kvm:
  3699                            type: object
  3700                            description: "KVM \t(KVM clock) - lets guests read the host’s wall clock time (paravirtualized). For linux guests."
  3701                            properties:
  3702                              present:
  3703                                type: boolean
  3704                                description: Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true.
  3705                          pit:
  3706                            type: object
  3707                            description: PIT (Programmable Interval Timer) - a timer with periodic interrupts.
  3708                            properties:
  3709                              present:
  3710                                type: boolean
  3711                                description: Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true.
  3712                              tickPolicy:
  3713                                type: string
  3714                                description: TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest. One of "delay", "catchup", "discard".
  3715                          rtc:
  3716                            type: object
  3717                            description: RTC (Real Time Clock) - a continuously running timer with periodic interrupts.
  3718                            properties:
  3719                              present:
  3720                                type: boolean
  3721                                description: Enabled set to false makes sure that the machine type or a preset can't add the timer. Defaults to true.
  3722                              tickPolicy:
  3723                                type: string
  3724                                description: TickPolicy determines what happens when QEMU misses a deadline for injecting a tick to the guest. One of "delay", "catchup".
  3725                              track:
  3726                                type: string
  3727                                description: Track the guest or the wall clock.
  3728                      timezone:
  3729                        type: string
  3730                        description: Timezone sets the guest clock to the specified timezone. Zone name follows the TZ environment variable format (e.g. 'America/New_York').
  3731                      utc:
  3732                        type: object
  3733                        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.
  3734                        properties:
  3735                          offsetSeconds:
  3736                            type: integer
  3737                            description: OffsetSeconds specifies an offset in seconds, relative to UTC. If set, guest changes to the clock will be kept during reboots and not reset.
  3738                  cpu:
  3739                    type: object
  3740                    description: CPU allow specified the detailed CPU topology inside the vmi.
  3741                    properties:
  3742                      cores:
  3743                        type: integer
  3744                        description: Cores specifies the number of cores inside the vmi. Must be a value greater or equal 1.
  3745                        format: int32
  3746                      dedicatedCpuPlacement:
  3747                        type: boolean
  3748                        description: DedicatedCPUPlacement requests the scheduler to place the VirtualMachineInstance on a node with enough dedicated pCPUs and pin the vCPUs to it.
  3749                      features:
  3750                        type: array
  3751                        description: Features specifies the CPU features list inside the VMI.
  3752                        items:
  3753                          type: object
  3754                          description: CPUFeature allows specifying a CPU feature.
  3755                          properties:
  3756                            name:
  3757                              type: string
  3758                              description: Name of the CPU feature
  3759                            policy:
  3760                              type: string
  3761                              description: 'Policy is the CPU feature attribute which can have the following attributes: force    - The virtual CPU will claim the feature is supported regardless of it being supported by host CPU. require  - Guest creation will fail unless the feature is supported by the host CPU or the hypervisor is able to emulate it. optional - The feature will be supported by virtual CPU if and only if it is supported by host CPU. disable  - The feature will not be supported by virtual CPU. forbid   - Guest creation will fail if the feature is supported by host CPU. Defaults to require'
  3762                          required:
  3763                          - name
  3764                      isolateEmulatorThread:
  3765                        type: boolean
  3766                        description: IsolateEmulatorThread requests one more dedicated pCPU to be allocated for the VMI to place the emulator thread on it.
  3767                      maxSockets:
  3768                        type: integer
  3769                        description: MaxSockets specifies the maximum amount of sockets that can be hotplugged
  3770                        format: int32
  3771                      model:
  3772                        type: string
  3773                        description: Model specifies the CPU model inside the VMI. List of available models https://github.com/libvirt/libvirt/tree/master/src/cpu_map. It is possible to specify special cases like "host-passthrough" to get the same CPU as the node and "host-model" to get CPU closest to the node one. Defaults to host-model.
  3774                      numa:
  3775                        type: object
  3776                        description: NUMA allows specifying settings for the guest NUMA topology
  3777                        properties:
  3778                          guestMappingPassthrough:
  3779                            type: object
  3780                            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.
  3781                      realtime:
  3782                        type: object
  3783                        description: Realtime instructs the virt-launcher to tune the VMI for lower latency, optional for real time workloads
  3784                        properties:
  3785                          mask:
  3786                            type: string
  3787                            description: 'Mask defines the vcpu mask expression that defines which vcpus are used for realtime. Format matches libvirt''s expressions. Example: "0-3,^1","0,2,3","2-3"'
  3788                      sockets:
  3789                        type: integer
  3790                        description: Sockets specifies the number of sockets inside the vmi. Must be a value greater or equal 1.
  3791                        format: int32
  3792                      threads:
  3793                        type: integer
  3794                        description: Threads specifies the number of threads inside the vmi. Must be a value greater or equal 1.
  3795                        format: int32
  3796                  devices:
  3797                    type: object
  3798                    description: Devices allows adding disks, network interfaces, and others
  3799                    properties:
  3800                      autoattachGraphicsDevice:
  3801                        type: boolean
  3802                        description: Whether to attach the default graphics device or not. VNC will not be available if set to false. Defaults to true.
  3803                      autoattachInputDevice:
  3804                        type: boolean
  3805                        description: Whether to attach an Input Device. Defaults to false.
  3806                      autoattachMemBalloon:
  3807                        type: boolean
  3808                        description: Whether to attach the Memory balloon device with default period. Period can be adjusted in virt-config. Defaults to true.
  3809                      autoattachPodInterface:
  3810                        type: boolean
  3811                        description: Whether to attach a pod network interface. Defaults to true.
  3812                      autoattachSerialConsole:
  3813                        type: boolean
  3814                        description: Whether to attach the default virtio-serial console or not. Serial console access will not be available if set to false. Defaults to true.
  3815                      autoattachVSOCK:
  3816                        type: boolean
  3817                        description: Whether to attach the VSOCK CID to the VM or not. VSOCK access will be available if set to true. Defaults to false.
  3818                      blockMultiQueue:
  3819                        type: boolean
  3820                        description: Whether or not to enable virtio multi-queue for block devices. Defaults to false.
  3821                      clientPassthrough:
  3822                        type: object
  3823                        description: To configure and access client devices such as redirecting USB
  3824                      disableHotplug:
  3825                        type: boolean
  3826                        description: DisableHotplug disabled the ability to hotplug disks.
  3827                      disks:
  3828                        type: array
  3829                        description: Disks describes disks, cdroms and luns which are connected to the vmi.
  3830                        items:
  3831                          type: object
  3832                          properties:
  3833                            name:
  3834                              type: string
  3835                              description: Name is the device name
  3836                            blockSize:
  3837                              type: object
  3838                              description: If specified, the virtual disk will be presented with the given block sizes.
  3839                              properties:
  3840                                custom:
  3841                                  type: object
  3842                                  description: CustomBlockSize represents the desired logical and physical block size for a VM disk.
  3843                                  properties:
  3844                                    logical:
  3845                                      type: integer
  3846                                    physical:
  3847                                      type: integer
  3848                                  required:
  3849                                  - logical
  3850                                  - physical
  3851                                matchVolume:
  3852                                  type: object
  3853                                  description: Represents if a feature is enabled or disabled.
  3854                                  properties:
  3855                                    enabled:
  3856                                      type: boolean
  3857                                      description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  3858                            bootOrder:
  3859                              type: integer
  3860                              description: BootOrder is an integer value > 0, used to determine ordering of boot devices. Lower values take precedence. Each disk or interface that has a boot order must have a unique value. Disks without a boot order are not tried if a disk with a boot order exists.
  3861                            cache:
  3862                              type: string
  3863                              description: 'Cache specifies which kvm disk cache mode should be used. Supported values are: CacheNone, CacheWriteThrough.'
  3864                            cdrom:
  3865                              type: object
  3866                              description: Attach a volume as a cdrom to the vmi.
  3867                              properties:
  3868                                bus:
  3869                                  type: string
  3870                                  description: 'Bus indicates the type of disk device to emulate. supported values: virtio, sata, scsi.'
  3871                                readonly:
  3872                                  type: boolean
  3873                                  description: ReadOnly. Defaults to true.
  3874                                tray:
  3875                                  type: string
  3876                                  description: Tray indicates if the tray of the device is open or closed. Allowed values are "open" and "closed". Defaults to closed.
  3877                            dedicatedIOThread:
  3878                              type: boolean
  3879                              description: dedicatedIOThread indicates this disk should have an exclusive IO Thread. Enabling this implies useIOThreads = true. Defaults to false.
  3880                            disk:
  3881                              type: object
  3882                              description: Attach a volume as a disk to the vmi.
  3883                              properties:
  3884                                bus:
  3885                                  type: string
  3886                                  description: 'Bus indicates the type of disk device to emulate. supported values: virtio, sata, scsi, usb.'
  3887                                pciAddress:
  3888                                  type: string
  3889                                  description: 'If specified, the virtual disk will be placed on the guests pci address with the specified PCI address. For example: 0000:81:01.10'
  3890                                readonly:
  3891                                  type: boolean
  3892                                  description: ReadOnly. Defaults to false.
  3893                            errorPolicy:
  3894                              type: string
  3895                              description: If specified, it can change the default error policy (stop) for the disk
  3896                            io:
  3897                              type: string
  3898                              description: 'IO specifies which QEMU disk IO mode should be used. Supported values are: native, default, threads.'
  3899                            lun:
  3900                              type: object
  3901                              description: Attach a volume as a LUN to the vmi.
  3902                              properties:
  3903                                bus:
  3904                                  type: string
  3905                                  description: 'Bus indicates the type of disk device to emulate. supported values: virtio, sata, scsi.'
  3906                                readonly:
  3907                                  type: boolean
  3908                                  description: ReadOnly. Defaults to false.
  3909                                reservation:
  3910                                  type: boolean
  3911                                  description: Reservation indicates if the disk needs to support the persistent reservation for the SCSI disk
  3912                            serial:
  3913                              type: string
  3914                              description: Serial provides the ability to specify a serial number for the disk device.
  3915                            shareable:
  3916                              type: boolean
  3917                              description: If specified the disk is made sharable and multiple write from different VMs are permitted
  3918                            tag:
  3919                              type: string
  3920                              description: If specified, disk address and its tag will be provided to the guest via config drive metadata
  3921                          required:
  3922                          - name
  3923                      downwardMetrics:
  3924                        type: object
  3925                        description: DownwardMetrics creates a virtio serials for exposing the downward metrics to the vmi.
  3926                      filesystems:
  3927                        type: array
  3928                        description: Filesystems describes filesystem which is connected to the vmi.
  3929                        items:
  3930                          type: object
  3931                          properties:
  3932                            name:
  3933                              type: string
  3934                              description: Name is the device name
  3935                            virtiofs:
  3936                              type: object
  3937                              description: Virtiofs is supported
  3938                          required:
  3939                          - name
  3940                          - virtiofs
  3941                        x-kubernetes-list-type: atomic
  3942                      gpus:
  3943                        type: array
  3944                        description: Whether to attach a GPU device to the vmi.
  3945                        items:
  3946                          type: object
  3947                          properties:
  3948                            name:
  3949                              type: string
  3950                              description: Name of the GPU device as exposed by a device plugin
  3951                            deviceName:
  3952                              type: string
  3953                            tag:
  3954                              type: string
  3955                              description: If specified, the virtual network interface address and its tag will be provided to the guest via config drive
  3956                            virtualGPUOptions:
  3957                              type: object
  3958                              properties:
  3959                                display:
  3960                                  type: object
  3961                                  properties:
  3962                                    enabled:
  3963                                      type: boolean
  3964                                      description: Enabled determines if a display addapter backed by a vGPU should be enabled or disabled on the guest. Defaults to true.
  3965                                    ramFB:
  3966                                      type: object
  3967                                      description: Enables a boot framebuffer, until the guest OS loads a real GPU driver Defaults to true.
  3968                                      properties:
  3969                                        enabled:
  3970                                          type: boolean
  3971                                          description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  3972                          required:
  3973                          - deviceName
  3974                          - name
  3975                        x-kubernetes-list-type: atomic
  3976                      hostDevices:
  3977                        type: array
  3978                        description: Whether to attach a host device to the vmi.
  3979                        items:
  3980                          type: object
  3981                          properties:
  3982                            name:
  3983                              type: string
  3984                            deviceName:
  3985                              type: string
  3986                              description: DeviceName is the resource name of the host device exposed by a device plugin
  3987                            tag:
  3988                              type: string
  3989                              description: If specified, the virtual network interface address and its tag will be provided to the guest via config drive
  3990                          required:
  3991                          - deviceName
  3992                          - name
  3993                        x-kubernetes-list-type: atomic
  3994                      inputs:
  3995                        type: array
  3996                        description: Inputs describe input devices
  3997                        items:
  3998                          type: object
  3999                          properties:
  4000                            name:
  4001                              type: string
  4002                              description: Name is the device name
  4003                            type:
  4004                              type: string
  4005                              description: 'Type indicated the type of input device. Supported values: tablet.'
  4006                            bus:
  4007                              type: string
  4008                              description: 'Bus indicates the bus of input device to emulate. Supported values: virtio, usb.'
  4009                          required:
  4010                          - name
  4011                          - type
  4012                      interfaces:
  4013                        type: array
  4014                        description: Interfaces describe network interfaces which are added to the vmi.
  4015                        items:
  4016                          type: object
  4017                          properties:
  4018                            name:
  4019                              type: string
  4020                              description: Logical name of the interface as well as a reference to the associated networks. Must match the Name of a Network.
  4021                            ports:
  4022                              type: array
  4023                              description: List of ports to be forwarded to the virtual machine.
  4024                              items:
  4025                                type: object
  4026                                description: Port represents a port to expose from the virtual machine. Default protocol TCP. The port field is mandatory
  4027                                properties:
  4028                                  name:
  4029                                    type: string
  4030                                    description: If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.
  4031                                  protocol:
  4032                                    type: string
  4033                                    description: Protocol for port. Must be UDP or TCP. Defaults to "TCP".
  4034                                  port:
  4035                                    type: integer
  4036                                    description: Number of port to expose for the virtual machine. This must be a valid port number, 0 < x < 65536.
  4037                                    format: int32
  4038                                required:
  4039                                - port
  4040                            acpiIndex:
  4041                              type: integer
  4042                              description: If specified, the ACPI index is used to provide network interface device naming, that is stable across changes in PCI addresses assigned to the device. This value is required to be unique across all devices and be between 1 and (16*1024-1).
  4043                            binding:
  4044                              type: object
  4045                              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'
  4046                              properties:
  4047                                name:
  4048                                  type: string
  4049                                  description: 'Name references to the binding name as denined in the kubevirt CR. version: 1alphav1'
  4050                              required:
  4051                              - name
  4052                            bootOrder:
  4053                              type: integer
  4054                              description: BootOrder is an integer value > 0, used to determine ordering of boot devices. Lower values take precedence. Each interface or disk that has a boot order must have a unique value. Interfaces without a boot order are not tried.
  4055                            bridge:
  4056                              type: object
  4057                              description: InterfaceBridge connects to a given network via a linux bridge.
  4058                            dhcpOptions:
  4059                              type: object
  4060                              description: If specified the network interface will pass additional DHCP options to the VMI
  4061                              properties:
  4062                                bootFileName:
  4063                                  type: string
  4064                                  description: If specified will pass option 67 to interface's DHCP server
  4065                                ntpServers:
  4066                                  type: array
  4067                                  description: If specified will pass the configured NTP server to the VM via DHCP option 042.
  4068                                  items:
  4069                                    type: string
  4070                                privateOptions:
  4071                                  type: array
  4072                                  description: 'If specified will pass extra DHCP options for private use, range: 224-254'
  4073                                  items:
  4074                                    type: object
  4075                                    description: DHCPExtraOptions defines Extra DHCP options for a VM.
  4076                                    properties:
  4077                                      value:
  4078                                        type: string
  4079                                        description: Value is a String value for the Option provided Required.
  4080                                      option:
  4081                                        type: integer
  4082                                        description: Option is an Integer value from 224-254 Required.
  4083                                    required:
  4084                                    - option
  4085                                    - value
  4086                                tftpServerName:
  4087                                  type: string
  4088                                  description: If specified will pass option 66 to interface's DHCP server
  4089                            macAddress:
  4090                              type: string
  4091                              description: 'Interface MAC address. For example: de:ad:00:00:be:af or DE-AD-00-00-BE-AF.'
  4092                            macvtap:
  4093                              type: object
  4094                              description: InterfaceMacvtap connects to a given network by extending the Kubernetes node's L2 networks via a macvtap interface.
  4095                            masquerade:
  4096                              type: object
  4097                              description: InterfaceMasquerade connects to a given network using netfilter rules to nat the traffic.
  4098                            model:
  4099                              type: string
  4100                              description: 'Interface model. One of: e1000, e1000e, ne2k_pci, pcnet, rtl8139, virtio. Defaults to virtio. TODO:(ihar) switch to enums once opengen-api supports them. See: https://github.com/kubernetes/kube-openapi/issues/51'
  4101                            passt:
  4102                              type: object
  4103                              description: InterfacePasst connects to a given network.
  4104                            pciAddress:
  4105                              type: string
  4106                              description: 'If specified, the virtual network interface will be placed on the guests pci address with the specified PCI address. For example: 0000:81:01.10'
  4107                            slirp:
  4108                              type: object
  4109                              description: InterfaceSlirp connects to a given network using QEMU user networking mode.
  4110                            sriov:
  4111                              type: object
  4112                              description: InterfaceSRIOV connects to a given network by passing-through an SR-IOV PCI device via vfio.
  4113                            state:
  4114                              type: string
  4115                              description: State represents the requested operational state of the interface. The (only) value supported is 'absent', expressing a request to remove the interface.
  4116                            tag:
  4117                              type: string
  4118                              description: If specified, the virtual network interface address and its tag will be provided to the guest via config drive
  4119                          required:
  4120                          - name
  4121                      logSerialConsole:
  4122                        type: boolean
  4123                        description: Whether to log the auto-attached default serial console or not. Serial console logs will be collect to a file and then streamed from a named 'guest-console-log'. Not relevant if autoattachSerialConsole is disabled. Defaults to cluster wide setting on VirtualMachineOptions.
  4124                      networkInterfaceMultiqueue:
  4125                        type: boolean
  4126                        description: If specified, virtual network interfaces configured with a virtio bus will also enable the vhost multiqueue feature for network devices. The number of queues created depends on additional factors of the VirtualMachineInstance, like the number of guest CPUs.
  4127                      rng:
  4128                        type: object
  4129                        description: Whether to have random number generator from host
  4130                      sound:
  4131                        type: object
  4132                        description: Whether to emulate a sound device.
  4133                        properties:
  4134                          name:
  4135                            type: string
  4136                            description: User's defined name for this sound device
  4137                          model:
  4138                            type: string
  4139                            description: 'We only support ich9 or ac97. If SoundDevice is not set: No sound card is emulated. If SoundDevice is set but Model is not: ich9'
  4140                        required:
  4141                        - name
  4142                      tpm:
  4143                        type: object
  4144                        description: Whether to emulate a TPM device.
  4145                        properties:
  4146                          persistent:
  4147                            type: boolean
  4148                            description: Persistent indicates the state of the TPM device should be kept accross reboots Defaults to false
  4149                      useVirtioTransitional:
  4150                        type: boolean
  4151                        description: Fall back to legacy virtio 0.9 support if virtio bus is selected on devices. This is helpful for old machines like CentOS6 or RHEL6 which do not understand virtio_non_transitional (virtio 1.0).
  4152                      watchdog:
  4153                        type: object
  4154                        description: Watchdog describes a watchdog device which can be added to the vmi.
  4155                        properties:
  4156                          name:
  4157                            type: string
  4158                            description: Name of the watchdog.
  4159                          i6300esb:
  4160                            type: object
  4161                            description: i6300esb watchdog device.
  4162                            properties:
  4163                              action:
  4164                                type: string
  4165                                description: The action to take. Valid values are poweroff, reset, shutdown. Defaults to reset.
  4166                        required:
  4167                        - name
  4168                  features:
  4169                    type: object
  4170                    description: Features like acpi, apic, hyperv, smm.
  4171                    properties:
  4172                      acpi:
  4173                        type: object
  4174                        description: ACPI enables/disables ACPI inside the guest. Defaults to enabled.
  4175                        properties:
  4176                          enabled:
  4177                            type: boolean
  4178                            description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4179                      apic:
  4180                        type: object
  4181                        description: Defaults to the machine type setting.
  4182                        properties:
  4183                          enabled:
  4184                            type: boolean
  4185                            description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4186                          endOfInterrupt:
  4187                            type: boolean
  4188                            description: EndOfInterrupt enables the end of interrupt notification in the guest. Defaults to false.
  4189                      hyperv:
  4190                        type: object
  4191                        description: Defaults to the machine type setting.
  4192                        properties:
  4193                          evmcs:
  4194                            type: object
  4195                            description: EVMCS Speeds up L2 vmexits, but disables other virtualization features. Requires vapic. Defaults to the machine type setting.
  4196                            properties:
  4197                              enabled:
  4198                                type: boolean
  4199                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4200                          frequencies:
  4201                            type: object
  4202                            description: Frequencies improves the TSC clock source handling for Hyper-V on KVM. Defaults to the machine type setting.
  4203                            properties:
  4204                              enabled:
  4205                                type: boolean
  4206                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4207                          ipi:
  4208                            type: object
  4209                            description: IPI improves performances in overcommited environments. Requires vpindex. Defaults to the machine type setting.
  4210                            properties:
  4211                              enabled:
  4212                                type: boolean
  4213                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4214                          reenlightenment:
  4215                            type: object
  4216                            description: Reenlightenment enables the notifications on TSC frequency changes. Defaults to the machine type setting.
  4217                            properties:
  4218                              enabled:
  4219                                type: boolean
  4220                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4221                          relaxed:
  4222                            type: object
  4223                            description: Relaxed instructs the guest OS to disable watchdog timeouts. Defaults to the machine type setting.
  4224                            properties:
  4225                              enabled:
  4226                                type: boolean
  4227                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4228                          reset:
  4229                            type: object
  4230                            description: Reset enables Hyperv reboot/reset for the vmi. Requires synic. Defaults to the machine type setting.
  4231                            properties:
  4232                              enabled:
  4233                                type: boolean
  4234                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4235                          runtime:
  4236                            type: object
  4237                            description: Runtime improves the time accounting to improve scheduling in the guest. Defaults to the machine type setting.
  4238                            properties:
  4239                              enabled:
  4240                                type: boolean
  4241                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4242                          spinlocks:
  4243                            type: object
  4244                            description: Spinlocks allows to configure the spinlock retry attempts.
  4245                            properties:
  4246                              enabled:
  4247                                type: boolean
  4248                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4249                              spinlocks:
  4250                                type: integer
  4251                                description: Retries indicates the number of retries. Must be a value greater or equal 4096. Defaults to 4096.
  4252                                format: int32
  4253                          synic:
  4254                            type: object
  4255                            description: SyNIC enables the Synthetic Interrupt Controller. Defaults to the machine type setting.
  4256                            properties:
  4257                              enabled:
  4258                                type: boolean
  4259                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4260                          synictimer:
  4261                            type: object
  4262                            description: SyNICTimer enables Synthetic Interrupt Controller Timers, reducing CPU load. Defaults to the machine type setting.
  4263                            properties:
  4264                              direct:
  4265                                type: object
  4266                                description: Represents if a feature is enabled or disabled.
  4267                                properties:
  4268                                  enabled:
  4269                                    type: boolean
  4270                                    description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4271                              enabled:
  4272                                type: boolean
  4273                          tlbflush:
  4274                            type: object
  4275                            description: TLBFlush improves performances in overcommited environments. Requires vpindex. Defaults to the machine type setting.
  4276                            properties:
  4277                              enabled:
  4278                                type: boolean
  4279                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4280                          vapic:
  4281                            type: object
  4282                            description: VAPIC improves the paravirtualized handling of interrupts. Defaults to the machine type setting.
  4283                            properties:
  4284                              enabled:
  4285                                type: boolean
  4286                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4287                          vendorid:
  4288                            type: object
  4289                            description: VendorID allows setting the hypervisor vendor id. Defaults to the machine type setting.
  4290                            properties:
  4291                              enabled:
  4292                                type: boolean
  4293                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4294                              vendorid:
  4295                                type: string
  4296                                description: VendorID sets the hypervisor vendor id, visible to the vmi. String up to twelve characters.
  4297                          vpindex:
  4298                            type: object
  4299                            description: VPIndex enables the Virtual Processor Index to help windows identifying virtual processors. Defaults to the machine type setting.
  4300                            properties:
  4301                              enabled:
  4302                                type: boolean
  4303                                description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4304                      kvm:
  4305                        type: object
  4306                        description: Configure how KVM presence is exposed to the guest.
  4307                        properties:
  4308                          hidden:
  4309                            type: boolean
  4310                            description: Hide the KVM hypervisor from standard MSR based discovery. Defaults to false
  4311                      pvspinlock:
  4312                        type: object
  4313                        description: Notify the guest that the host supports paravirtual spinlocks. For older kernels this feature should be explicitly disabled.
  4314                        properties:
  4315                          enabled:
  4316                            type: boolean
  4317                            description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4318                      smm:
  4319                        type: object
  4320                        description: SMM enables/disables System Management Mode. TSEG not yet implemented.
  4321                        properties:
  4322                          enabled:
  4323                            type: boolean
  4324                            description: Enabled determines if the feature should be enabled or disabled on the guest. Defaults to true.
  4325                  firmware:
  4326                    type: object
  4327                    description: Firmware.
  4328                    properties:
  4329                      bootloader:
  4330                        type: object
  4331                        description: Settings to control the bootloader that is used.
  4332                        properties:
  4333                          bios:
  4334                            type: object
  4335                            description: If set (default), BIOS will be used.
  4336                            properties:
  4337                              useSerial:
  4338                                type: boolean
  4339                                description: If set, the BIOS output will be transmitted over serial
  4340                          efi:
  4341                            type: object
  4342                            description: If set, EFI will be used instead of BIOS.
  4343                            properties:
  4344                              persistent:
  4345                                type: boolean
  4346                                description: If set to true, Persistent will persist the EFI NVRAM across reboots. Defaults to false
  4347                              secureBoot:
  4348                                type: boolean
  4349                                description: If set, SecureBoot will be enabled and the OVMF roms will be swapped for SecureBoot-enabled ones. Requires SMM to be enabled. Defaults to true
  4350                      kernelBoot:
  4351                        type: object
  4352                        description: Settings to set the kernel for booting.
  4353                        properties:
  4354                          container:
  4355                            type: object
  4356                            description: Container defines the container that containes kernel artifacts
  4357                            properties:
  4358                              image:
  4359                                type: string
  4360                                description: Image that contains initrd / kernel files.
  4361                              imagePullPolicy:
  4362                                type: string
  4363                                description: 'Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
  4364                              imagePullSecret:
  4365                                type: string
  4366                                description: ImagePullSecret is the name of the Docker registry secret required to pull the image. The secret must already exist.
  4367                              initrdPath:
  4368                                type: string
  4369                                description: the fully-qualified path to the ramdisk image in the host OS
  4370                              kernelPath:
  4371                                type: string
  4372                                description: The fully-qualified path to the kernel image in the host OS
  4373                            required:
  4374                            - image
  4375                          kernelArgs:
  4376                            type: string
  4377                            description: Arguments to be passed to the kernel at boot time
  4378                      serial:
  4379                        type: string
  4380                        description: The system-serial-number in SMBIOS
  4381                      uuid:
  4382                        type: string
  4383                        description: UUID reported by the vmi bios. Defaults to a random generated uid.
  4384                  ioThreadsPolicy:
  4385                    type: string
  4386                    description: 'Controls whether or not disks will share IOThreads. Omitting IOThreadsPolicy disables use of IOThreads. One of: shared, auto'
  4387                  launchSecurity:
  4388                    type: object
  4389                    description: Launch Security setting of the vmi.
  4390                    properties:
  4391                      sev:
  4392                        type: object
  4393                        description: AMD Secure Encrypted Virtualization (SEV).
  4394                        properties:
  4395                          attestation:
  4396                            type: object
  4397                            description: If specified, run the attestation process for a vmi.
  4398                          dhCert:
  4399                            type: string
  4400                            description: Base64 encoded guest owner's Diffie-Hellman key.
  4401                          policy:
  4402                            type: object
  4403                            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.'
  4404                            properties:
  4405                              encryptedState:
  4406                                type: boolean
  4407                                description: SEV-ES is required. Defaults to false.
  4408                          session:
  4409                            type: string
  4410                            description: Base64 encoded session blob.
  4411                  machine:
  4412                    type: object
  4413                    description: Machine type.
  4414                    properties:
  4415                      type:
  4416                        type: string
  4417                        description: QEMU machine type is the actual chipset of the VirtualMachineInstance.
  4418                  memory:
  4419                    type: object
  4420                    description: Memory allow specifying the VMI memory features.
  4421                    properties:
  4422                      guest:
  4423                        anyOf:
  4424                        - type: integer
  4425                        - type: string
  4426                        description: Guest allows to specifying the amount of memory which is visible inside the Guest OS. The Guest must lie between Requests and Limits from the resources section. Defaults to the requested memory in the resources section if not specified.
  4427                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4428                        x-kubernetes-int-or-string: true
  4429                      hugepages:
  4430                        type: object
  4431                        description: Hugepages allow to use hugepages for the VirtualMachineInstance instead of regular memory.
  4432                        properties:
  4433                          pageSize:
  4434                            type: string
  4435                            description: PageSize specifies the hugepage size, for x86_64 architecture valid values are 1Gi and 2Mi.
  4436                      maxGuest:
  4437                        anyOf:
  4438                        - type: integer
  4439                        - type: string
  4440                        description: MaxGuest allows to specify the maximum amount of memory which is visible inside the Guest OS. The delta between MaxGuest and Guest is the amount of memory that can be hot(un)plugged.
  4441                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4442                        x-kubernetes-int-or-string: true
  4443                required:
  4444                - devices
  4445              evictionStrategy:
  4446                type: string
  4447                description: EvictionStrategy can be set to "LiveMigrate" if the VirtualMachineInstance should be migrated instead of shut-off in case of a node drain.
  4448              networks:
  4449                type: array
  4450                description: List of networks that can be attached to a vm's virtual interface.
  4451                items:
  4452                  type: object
  4453                  description: Network represents a network type and a resource that should be connected to the vm.
  4454                  properties:
  4455                    name:
  4456                      type: string
  4457                      description: 'Network name. Must be a DNS_LABEL and unique within the vm. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4458                    multus:
  4459                      type: object
  4460                      description: Represents the multus cni network.
  4461                      properties:
  4462                        default:
  4463                          type: boolean
  4464                          description: Select the default network and add it to the multus-cni.io/default-network annotation.
  4465                        networkName:
  4466                          type: string
  4467                          description: 'References to a NetworkAttachmentDefinition CRD object. Format: <networkName>, <namespace>/<networkName>. If namespace is not specified, VMI namespace is assumed.'
  4468                      required:
  4469                      - networkName
  4470                    pod:
  4471                      type: object
  4472                      description: Represents the stock pod network interface.
  4473                      properties:
  4474                        vmIPv6NetworkCIDR:
  4475                          type: string
  4476                          description: IPv6 CIDR for the vm network. Defaults to fd10:0:2::/120 if not specified.
  4477                        vmNetworkCIDR:
  4478                          type: string
  4479                          description: CIDR for vm network. Default 10.0.2.0/24 if not specified.
  4480                  required:
  4481                  - name
  4482              startStrategy:
  4483                type: string
  4484                description: StartStrategy can be set to "Paused" if Virtual Machine should be started in paused state.
  4485              topologySpreadConstraints:
  4486                type: array
  4487                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.
  4488                items:
  4489                  type: object
  4490                  description: TopologySpreadConstraint specifies how to spread matching pods among the given topology.
  4491                  properties:
  4492                    labelSelector:
  4493                      type: object
  4494                      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.
  4495                      properties:
  4496                        matchExpressions:
  4497                          type: array
  4498                          description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
  4499                          items:
  4500                            type: object
  4501                            description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
  4502                            properties:
  4503                              key:
  4504                                type: string
  4505                                description: key is the label key that the selector applies to.
  4506                              operator:
  4507                                type: string
  4508                                description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
  4509                              values:
  4510                                type: array
  4511                                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.
  4512                                items:
  4513                                  type: string
  4514                            required:
  4515                            - key
  4516                            - operator
  4517                        matchLabels:
  4518                          type: object
  4519                          additionalProperties:
  4520                            type: string
  4521                          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.
  4522                    matchLabelKeys:
  4523                      type: array
  4524                      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. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.
  4525                      items:
  4526                        type: string
  4527                      x-kubernetes-list-type: atomic
  4528                    maxSkew:
  4529                      type: integer
  4530                      description: 'MaxSkew describes the degree to which pods may be unevenly distributed. When ''whenUnsatisfiable=DoNotSchedule'', it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | |  P P  |  P P  |   P   | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When ''whenUnsatisfiable=ScheduleAnyway'', it is used to give higher precedence to topologies that satisfy it. It''s a required field. Default value is 1 and 0 is not allowed.'
  4531                      format: int32
  4532                    minDomains:
  4533                      type: integer
  4534                      description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. \n For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | |  P P  |  P P  |  P P  | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. \n This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default)."
  4535                      format: int32
  4536                    nodeAffinityPolicy:
  4537                      type: string
  4538                      description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. \n If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  4539                    nodeTaintsPolicy:
  4540                      type: string
  4541                      description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. \n If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag."
  4542                    topologyKey:
  4543                      type: string
  4544                      description: TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a "bucket", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. It's a required field.
  4545                    whenUnsatisfiable:
  4546                      type: string
  4547                      description: 'WhenUnsatisfiable indicates how to deal with a pod if it doesn''t satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,   but giving higher precedence to topologies that would help reduce the   skew. A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P |   P   |   P   | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won''t make it *more* imbalanced. It''s a required field.'
  4548                  required:
  4549                  - maxSkew
  4550                  - topologyKey
  4551                  - whenUnsatisfiable
  4552                x-kubernetes-list-map-keys:
  4553                - topologyKey
  4554                - whenUnsatisfiable
  4555                x-kubernetes-list-type: map
  4556            required:
  4557            - domain
  4558          status:
  4559            type: object
  4560            description: Status is the high level overview of how the VirtualMachineInstance is doing. It contains information available to controllers and users.
  4561            properties:
  4562              nodeName:
  4563                type: string
  4564                description: NodeName is the name where the VirtualMachineInstance is currently running.
  4565              VSOCKCID:
  4566                type: integer
  4567                description: VSOCKCID is used to track the allocated VSOCK CID in the VM.
  4568                format: int32
  4569              activePods:
  4570                type: object
  4571                additionalProperties:
  4572                  type: string
  4573                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.
  4574              conditions:
  4575                type: array
  4576                description: Conditions are specific points in VirtualMachineInstance's pod runtime.
  4577                items:
  4578                  type: object
  4579                  properties:
  4580                    type:
  4581                      type: string
  4582                    status:
  4583                      type: string
  4584                    lastProbeTime:
  4585                      type: string
  4586                      format: date-time
  4587                      nullable: true
  4588                    lastTransitionTime:
  4589                      type: string
  4590                      format: date-time
  4591                      nullable: true
  4592                    message:
  4593                      type: string
  4594                    reason:
  4595                      type: string
  4596                  required:
  4597                  - status
  4598                  - type
  4599              currentCPUTopology:
  4600                type: object
  4601                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.
  4602                properties:
  4603                  cores:
  4604                    type: integer
  4605                    description: Cores specifies the number of cores inside the vmi. Must be a value greater or equal 1.
  4606                    format: int32
  4607                  sockets:
  4608                    type: integer
  4609                    description: Sockets specifies the number of sockets inside the vmi. Must be a value greater or equal 1.
  4610                    format: int32
  4611                  threads:
  4612                    type: integer
  4613                    description: Threads specifies the number of threads inside the vmi. Must be a value greater or equal 1.
  4614                    format: int32
  4615              evacuationNodeName:
  4616                type: string
  4617                description: EvacuationNodeName is used to track the eviction process of a VMI. It stores the name of the node that we want to evacuate. It is meant to be used by KubeVirt core components only and can't be set or modified by users.
  4618              fsFreezeStatus:
  4619                type: string
  4620                description: FSFreezeStatus is the state of the fs of the guest it can be either frozen or thawed
  4621              guestOSInfo:
  4622                type: object
  4623                description: Guest OS Information
  4624                properties:
  4625                  name:
  4626                    type: string
  4627                    description: Name of the Guest OS
  4628                  id:
  4629                    type: string
  4630                    description: Guest OS Id
  4631                  kernelRelease:
  4632                    type: string
  4633                    description: Guest OS Kernel Release
  4634                  kernelVersion:
  4635                    type: string
  4636                    description: Kernel version of the Guest OS
  4637                  machine:
  4638                    type: string
  4639                    description: Machine type of the Guest OS
  4640                  prettyName:
  4641                    type: string
  4642                    description: Guest OS Pretty Name
  4643                  version:
  4644                    type: string
  4645                    description: Guest OS Version
  4646                  versionId:
  4647                    type: string
  4648                    description: Version ID of the Guest OS
  4649              interfaces:
  4650                type: array
  4651                description: Interfaces represent the details of available network interfaces.
  4652                items:
  4653                  type: object
  4654                  properties:
  4655                    name:
  4656                      type: string
  4657                      description: Name of the interface, corresponds to name of the network assigned to the interface
  4658                    infoSource:
  4659                      type: string
  4660                      description: 'Specifies the origin of the interface data collected. values: domain, guest-agent, multus-status.'
  4661                    interfaceName:
  4662                      type: string
  4663                      description: The interface name inside the Virtual Machine
  4664                    ipAddress:
  4665                      type: string
  4666                      description: IP address of a Virtual Machine interface. It is always the first item of IPs
  4667                    ipAddresses:
  4668                      type: array
  4669                      description: List of all IP addresses of a Virtual Machine interface
  4670                      items:
  4671                        type: string
  4672                    mac:
  4673                      type: string
  4674                      description: Hardware address of a Virtual Machine interface
  4675                    queueCount:
  4676                      type: integer
  4677                      description: Specifies how many queues are allocated by MultiQueue
  4678                      format: int32
  4679              launcherContainerImageVersion:
  4680                type: string
  4681                description: LauncherContainerImageVersion indicates what container image is currently active for the vmi.
  4682              machine:
  4683                type: object
  4684                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.
  4685                properties:
  4686                  type:
  4687                    type: string
  4688                    description: QEMU machine type is the actual chipset of the VirtualMachineInstance.
  4689              memory:
  4690                type: object
  4691                description: Memory shows various informations about the VirtualMachine memory.
  4692                properties:
  4693                  guestAtBoot:
  4694                    anyOf:
  4695                    - type: integer
  4696                    - type: string
  4697                    description: GuestAtBoot specifies with how much memory the VirtualMachine intiallly booted with.
  4698                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4699                    x-kubernetes-int-or-string: true
  4700                  guestCurrent:
  4701                    anyOf:
  4702                    - type: integer
  4703                    - type: string
  4704                    description: GuestCurrent specifies how much memory is currently available for the VirtualMachine.
  4705                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4706                    x-kubernetes-int-or-string: true
  4707                  guestRequested:
  4708                    anyOf:
  4709                    - type: integer
  4710                    - type: string
  4711                    description: GuestRequested specifies how much memory was requested (hotplug) for the VirtualMachine.
  4712                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4713                    x-kubernetes-int-or-string: true
  4714              migrationMethod:
  4715                type: string
  4716                description: 'Represents the method using which the vmi can be migrated: live migration or block migration'
  4717              migrationState:
  4718                type: object
  4719                description: Represents the status of a live migration
  4720                properties:
  4721                  abortRequested:
  4722                    type: boolean
  4723                    description: Indicates that the migration has been requested to abort
  4724                  abortStatus:
  4725                    type: string
  4726                    description: Indicates the final status of the live migration abortion
  4727                  completed:
  4728                    type: boolean
  4729                    description: Indicates the migration completed
  4730                  endTimestamp:
  4731                    type: string
  4732                    description: The time the migration action ended
  4733                    format: date-time
  4734                    nullable: true
  4735                  failed:
  4736                    type: boolean
  4737                    description: Indicates that the migration failed
  4738                  migrationConfiguration:
  4739                    type: object
  4740                    description: Migration configurations to apply
  4741                    properties:
  4742                      allowAutoConverge:
  4743                        type: boolean
  4744                        description: AllowAutoConverge allows the platform to compromise performance/availability of VMIs to guarantee successful VMI live migrations. Defaults to false
  4745                      allowPostCopy:
  4746                        type: boolean
  4747                        description: AllowPostCopy enables post-copy live migrations. Such migrations allow even the busiest VMIs to successfully live-migrate. However, events like a network failure can cause a VMI crash. If set to true, migrations will still start in pre-copy, but switch to post-copy when CompletionTimeoutPerGiB triggers. Defaults to false
  4748                      bandwidthPerMigration:
  4749                        anyOf:
  4750                        - type: integer
  4751                        - type: string
  4752                        description: BandwidthPerMigration limits the amount of network bandwidth live migrations are allowed to use. The value is in quantity per second. Defaults to 0 (no limit)
  4753                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4754                        x-kubernetes-int-or-string: true
  4755                      completionTimeoutPerGiB:
  4756                        type: integer
  4757                        description: CompletionTimeoutPerGiB is the maximum number of seconds per GiB a migration is allowed to take. If a live-migration takes longer to migrate than this value multiplied by the size of the VMI, the migration will be cancelled, unless AllowPostCopy is true. Defaults to 800
  4758                        format: int64
  4759                      disableTLS:
  4760                        type: boolean
  4761                        description: When set to true, DisableTLS will disable the additional layer of live migration encryption provided by KubeVirt. This is usually a bad idea. Defaults to false
  4762                      matchSELinuxLevelOnMigration:
  4763                        type: boolean
  4764                        description: By default, the SELinux level of target virt-launcher pods is forced to the level of the source virt-launcher. When set to true, MatchSELinuxLevelOnMigration lets the CRI auto-assign a random level to the target. That will ensure the target virt-launcher doesn't share categories with another pod on the node. However, migrations will fail when using RWX volumes that don't automatically deal with SELinux levels.
  4765                      network:
  4766                        type: string
  4767                        description: Network is the name of the CNI network to use for live migrations. By default, migrations go through the pod network.
  4768                      nodeDrainTaintKey:
  4769                        type: string
  4770                        description: 'NodeDrainTaintKey defines the taint key that indicates a node should be drained. Note: this option relies on the deprecated node taint feature. Default: kubevirt.io/drain'
  4771                      parallelMigrationsPerCluster:
  4772                        type: integer
  4773                        description: ParallelMigrationsPerCluster is the total number of concurrent live migrations allowed cluster-wide. Defaults to 5
  4774                        format: int32
  4775                      parallelOutboundMigrationsPerNode:
  4776                        type: integer
  4777                        description: ParallelOutboundMigrationsPerNode is the maximum number of concurrent outgoing live migrations allowed per node. Defaults to 2
  4778                        format: int32
  4779                      progressTimeout:
  4780                        type: integer
  4781                        description: ProgressTimeout is the maximum number of seconds a live migration is allowed to make no progress. Hitting this timeout means a migration transferred 0 data for that many seconds. The migration is then considered stuck and therefore cancelled. Defaults to 150
  4782                        format: int64
  4783                      unsafeMigrationOverride:
  4784                        type: boolean
  4785                        description: UnsafeMigrationOverride allows live migrations to occur even if the compatibility check indicates the migration will be unsafe to the guest. Defaults to false
  4786                  migrationPolicyName:
  4787                    type: string
  4788                    description: Name of the migration policy. If string is empty, no policy is matched
  4789                  migrationUid:
  4790                    type: string
  4791                    description: The VirtualMachineInstanceMigration object associated with this migration
  4792                  mode:
  4793                    type: string
  4794                    description: Lets us know if the vmi is currently running pre or post copy migration
  4795                  sourceNode:
  4796                    type: string
  4797                    description: The source node that the VMI originated on
  4798                  startTimestamp:
  4799                    type: string
  4800                    description: The time the migration action began
  4801                    format: date-time
  4802                    nullable: true
  4803                  targetAttachmentPodUID:
  4804                    type: string
  4805                    description: The UID of the target attachment pod for hotplug volumes
  4806                  targetCPUSet:
  4807                    type: array
  4808                    description: If the VMI requires dedicated CPUs, this field will hold the dedicated CPU set on the target node
  4809                    items:
  4810                      type: integer
  4811                    x-kubernetes-list-type: atomic
  4812                  targetDirectMigrationNodePorts:
  4813                    type: object
  4814                    additionalProperties:
  4815                      type: integer
  4816                    description: The list of ports opened for live migration on the destination node
  4817                  targetNode:
  4818                    type: string
  4819                    description: The target node that the VMI is moving to
  4820                  targetNodeAddress:
  4821                    type: string
  4822                    description: The address of the target node to use for the migration
  4823                  targetNodeDomainDetected:
  4824                    type: boolean
  4825                    description: The Target Node has seen the Domain Start Event
  4826                  targetNodeDomainReadyTimestamp:
  4827                    type: string
  4828                    description: The timestamp at which the target node detects the domain is active
  4829                    format: date-time
  4830                  targetNodeTopology:
  4831                    type: string
  4832                    description: If the VMI requires dedicated CPUs, this field will hold the numa topology on the target node
  4833                  targetPod:
  4834                    type: string
  4835                    description: The target pod that the VMI is moving to
  4836              migrationTransport:
  4837                type: string
  4838                description: This represents the migration transport
  4839              phase:
  4840                type: string
  4841                description: Phase is the status of the VirtualMachineInstance in kubernetes world. It is not the VirtualMachineInstance status, but partially correlates to it.
  4842              phaseTransitionTimestamps:
  4843                type: array
  4844                description: PhaseTransitionTimestamp is the timestamp of when the last phase change occurred
  4845                items:
  4846                  type: object
  4847                  description: VirtualMachineInstancePhaseTransitionTimestamp gives a timestamp in relation to when a phase is set on a vmi
  4848                  properties:
  4849                    phase:
  4850                      type: string
  4851                      description: Phase is the status of the VirtualMachineInstance in kubernetes world. It is not the VirtualMachineInstance status, but partially correlates to it.
  4852                    phaseTransitionTimestamp:
  4853                      type: string
  4854                      description: PhaseTransitionTimestamp is the timestamp of when the phase change occurred
  4855                      format: date-time
  4856                x-kubernetes-list-type: atomic
  4857              qosClass:
  4858                type: string
  4859                description: 'The Quality of Service (QOS) classification assigned to the virtual machine instance based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md'
  4860              reason:
  4861                type: string
  4862                description: A brief CamelCase message indicating details about why the VMI is in this state. e.g. 'NodeUnresponsive'
  4863              runtimeUser:
  4864                type: integer
  4865                description: RuntimeUser is used to determine what user will be used in launcher
  4866                format: int64
  4867              selinuxContext:
  4868                type: string
  4869                description: SELinuxContext is the actual SELinux context of the virt-launcher pod
  4870              topologyHints:
  4871                type: object
  4872                properties:
  4873                  tscFrequency:
  4874                    type: integer
  4875                    format: int64
  4876              virtualMachineRevisionName:
  4877                type: string
  4878                description: VirtualMachineRevisionName is used to get the vm revision of the vmi when doing an online vm snapshot
  4879              volumeStatus:
  4880                type: array
  4881                description: VolumeStatus contains the statuses of all the volumes
  4882                items:
  4883                  type: object
  4884                  description: VolumeStatus represents information about the status of volumes attached to the VirtualMachineInstance.
  4885                  properties:
  4886                    name:
  4887                      type: string
  4888                      description: Name is the name of the volume
  4889                    hotplugVolume:
  4890                      type: object
  4891                      description: If the volume is hotplug, this will contain the hotplug status.
  4892                      properties:
  4893                        attachPodName:
  4894                          type: string
  4895                          description: AttachPodName is the name of the pod used to attach the volume to the node.
  4896                        attachPodUID:
  4897                          type: string
  4898                          description: AttachPodUID is the UID of the pod used to attach the volume to the node.
  4899                    memoryDumpVolume:
  4900                      type: object
  4901                      description: If the volume is memorydump volume, this will contain the memorydump info.
  4902                      properties:
  4903                        claimName:
  4904                          type: string
  4905                          description: ClaimName is the name of the pvc the memory was dumped to
  4906                        endTimestamp:
  4907                          type: string
  4908                          description: EndTimestamp is the time when the memory dump completed
  4909                          format: date-time
  4910                        startTimestamp:
  4911                          type: string
  4912                          description: StartTimestamp is the time when the memory dump started
  4913                          format: date-time
  4914                        targetFileName:
  4915                          type: string
  4916                          description: TargetFileName is the name of the memory dump output
  4917                    message:
  4918                      type: string
  4919                      description: Message is a detailed message about the current hotplug volume phase
  4920                    persistentVolumeClaimInfo:
  4921                      type: object
  4922                      description: PersistentVolumeClaimInfo is information about the PVC that handler requires during start flow
  4923                      properties:
  4924                        accessModes:
  4925                          type: array
  4926                          description: 'AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1'
  4927                          items:
  4928                            type: string
  4929                          x-kubernetes-list-type: atomic
  4930                        capacity:
  4931                          type: object
  4932                          additionalProperties:
  4933                            anyOf:
  4934                            - type: integer
  4935                            - type: string
  4936                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4937                            x-kubernetes-int-or-string: true
  4938                          description: Capacity represents the capacity set on the corresponding PVC status
  4939                        filesystemOverhead:
  4940                          type: string
  4941                          description: Percentage of filesystem's size to be reserved when resizing the PVC
  4942                          pattern: ^(0(?:\.\d{1,3})?|1)$
  4943                        preallocated:
  4944                          type: boolean
  4945                          description: Preallocated indicates if the PVC's storage is preallocated or not
  4946                        requests:
  4947                          type: object
  4948                          additionalProperties:
  4949                            anyOf:
  4950                            - type: integer
  4951                            - type: string
  4952                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  4953                            x-kubernetes-int-or-string: true
  4954                          description: Requests represents the resources requested by the corresponding PVC spec
  4955                        volumeMode:
  4956                          type: string
  4957                          description: VolumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.
  4958                    phase:
  4959                      type: string
  4960                      description: Phase is the phase
  4961                    reason:
  4962                      type: string
  4963                      description: Reason is a brief description of why we are in the current hotplug volume phase
  4964                    size:
  4965                      type: integer
  4966                      description: Represents the size of the volume
  4967                      format: int64
  4968                    target:
  4969                      type: string
  4970                      description: 'Target is the target name used when adding the volume to the VM, eg: vda'
  4971                  required:
  4972                  - name
  4973                  - target
  4974                x-kubernetes-list-type: atomic
  4975        required:
  4976        - spec
  4977    served: true
  4978    storage: false

View as plain text