2020-03-09 10:11:07 +01:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
# Copyright: (c) 2018, KubeVirt Team <@kubevirt>
|
|
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
|
2020-06-24 21:50:36 +02:00
|
|
|
from __future__ import (absolute_import, division, print_function)
|
|
|
|
__metaclass__ = type
|
|
|
|
|
2020-03-09 10:11:07 +01:00
|
|
|
|
|
|
|
class ModuleDocFragment(object):
|
|
|
|
|
|
|
|
# Standard oVirt documentation fragment
|
|
|
|
DOCUMENTATION = r'''
|
|
|
|
options:
|
|
|
|
disks:
|
|
|
|
description:
|
|
|
|
- List of dictionaries which specify disks of the virtual machine.
|
|
|
|
- "A disk can be made accessible via four different types: I(disk), I(lun), I(cdrom), I(floppy)."
|
|
|
|
- "All possible configuration options are available in U(https://kubevirt.io/api-reference/master/definitions.html#_v1_disk)"
|
|
|
|
- Each disk must have specified a I(volume) that declares which volume type of the disk
|
|
|
|
All possible configuration options of volume are available in U(https://kubevirt.io/api-reference/master/definitions.html#_v1_volume).
|
|
|
|
type: list
|
|
|
|
labels:
|
|
|
|
description:
|
|
|
|
- Labels are key/value pairs that are attached to virtual machines. Labels are intended to be used to
|
|
|
|
specify identifying attributes of virtual machines that are meaningful and relevant to users, but do not directly
|
|
|
|
imply semantics to the core system. Labels can be used to organize and to select subsets of virtual machines.
|
|
|
|
Labels can be attached to virtual machines at creation time and subsequently added and modified at any time.
|
|
|
|
- More on labels that are used for internal implementation U(https://kubevirt.io/user-guide/#/misc/annotations_and_labels)
|
|
|
|
type: dict
|
|
|
|
interfaces:
|
|
|
|
description:
|
|
|
|
- An interface defines a virtual network interface of a virtual machine (also called a frontend).
|
|
|
|
- All possible configuration options interfaces are available in U(https://kubevirt.io/api-reference/master/definitions.html#_v1_interface)
|
|
|
|
- Each interface must have specified a I(network) that declares which logical or physical device it is connected to (also called as backend).
|
|
|
|
All possible configuration options of network are available in U(https://kubevirt.io/api-reference/master/definitions.html#_v1_network).
|
|
|
|
type: list
|
|
|
|
cloud_init_nocloud:
|
|
|
|
description:
|
|
|
|
- "Represents a cloud-init NoCloud user-data source. The NoCloud data will be added
|
|
|
|
as a disk to the virtual machine. A proper cloud-init installation is required inside the guest.
|
|
|
|
More information U(https://kubevirt.io/api-reference/master/definitions.html#_v1_cloudinitnocloudsource)"
|
|
|
|
type: dict
|
|
|
|
affinity:
|
|
|
|
description:
|
|
|
|
- "Describes node affinity scheduling rules for the vm."
|
|
|
|
type: dict
|
|
|
|
suboptions:
|
|
|
|
soft:
|
|
|
|
description:
|
|
|
|
- "The scheduler will prefer to schedule vms 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 C(weight) to the sum if the node has vms which matches the corresponding
|
|
|
|
C(term); the nodes with the highest sum are the most preferred."
|
|
|
|
type: dict
|
|
|
|
hard:
|
|
|
|
description:
|
|
|
|
- "If the affinity requirements specified by this field are not met at scheduling time, the vm will not be scheduled onto the node. If
|
|
|
|
the affinity requirements specified by this field cease to be met at some point during vm execution (e.g. due to a vm label update), the
|
|
|
|
system may or may not try to eventually evict the vm from its node. When there are multiple elements, the lists of nodes corresponding to
|
|
|
|
each C(term) are intersected, i.e. all terms must be satisfied."
|
|
|
|
type: dict
|
|
|
|
node_affinity:
|
|
|
|
description:
|
|
|
|
- "Describes vm affinity scheduling rules e.g. co-locate this vm in the same node, zone, etc. as some other vms"
|
|
|
|
type: dict
|
|
|
|
suboptions:
|
|
|
|
soft:
|
|
|
|
description:
|
|
|
|
- "The scheduler will prefer to schedule vms 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 C(weight) to the sum if the node matches the corresponding
|
|
|
|
match_expressions; the nodes with the highest sum are the most preferred."
|
|
|
|
type: dict
|
|
|
|
hard:
|
|
|
|
description:
|
|
|
|
- "If the affinity requirements specified by this field are not met at scheduling time, the vm will not be scheduled onto the node. If
|
|
|
|
the affinity requirements specified by this field cease to be met at some point during vm execution (e.g. due to an update), the system
|
|
|
|
may or may not try to eventually evict the vm from its node."
|
|
|
|
type: dict
|
|
|
|
anti_affinity:
|
|
|
|
description:
|
|
|
|
- "Describes vm anti-affinity scheduling rules e.g. avoid putting this vm in the same node, zone, etc. as some other vms."
|
|
|
|
type: dict
|
|
|
|
suboptions:
|
|
|
|
soft:
|
|
|
|
description:
|
|
|
|
- "The scheduler will prefer to schedule vms 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 C(weight) to the sum if the node has vms which matches
|
|
|
|
the corresponding C(term); the nodes with the highest sum are the most preferred."
|
|
|
|
type: dict
|
|
|
|
hard:
|
|
|
|
description:
|
|
|
|
- "If the anti-affinity requirements specified by this field are not met at scheduling time, the vm will not be scheduled onto the node.
|
|
|
|
If the anti-affinity requirements specified by this field cease to be met at some point during vm execution (e.g. due to a vm label
|
|
|
|
update), the system may or may not try to eventually evict the vm from its node. When there are multiple elements, the lists of nodes
|
|
|
|
corresponding to each C(term) are intersected, i.e. all terms must be satisfied."
|
|
|
|
type: dict
|
|
|
|
'''
|