Spec-Zone.ru › Ansible 2.11

community.kubevirt.kubevirt_preset – Управление пресетами виртуальных машин KubeVirt

Примечание

Этот плагин входит в коллекцию community.kubevirt (версия 1.0.0).

Для установки используйте: ansible-galaxy collection install community.kubevirt.

Для использования в плейбуке укажите: community.kubevirt.kubevirt_preset.

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Описание

  • Используйте Openshift Python SDK для управления состоянием пресетов виртуальных машин KubeVirt.

Требования

Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.

  • openshift >= 0.8.2
  • python >= 2.7

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
affinity
словарь
Описывает правила планирования привязки узла к виртуальной машине.
hard
словарь
Если требования привязки, указанные в этом поле, не выполняются во время планирования, виртуальная машина не будет запланирована на узел. Если требования привязки, указанные в этом поле, перестают выполняться в какой-то момент во время выполнения виртуальной машины (например, из-за обновления метки виртуальной машины), система может или не может попытаться в конечном итоге вытеснить виртуальную машину с узла. При наличии нескольких элементов списки узлов, соответствующие каждому term, пересекаются, т.е. все условия должны быть выполнены.
soft
словарь
Планировщик предпочтёт размещать виртуальные машины на узлах, удовлетворяющих выражениям привязки, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько из этих выражений. Узел, который предпочтительнее всего, — это узел с наибольшей суммой весов, т.е. для каждого узла, удовлетворяющего всем требованиям планирования (запрос ресурсов, выражения привязки requiredDuringScheduling и т. д.), вычислите сумму, перебирая элементы этого поля и добавляя weight к сумме, если на узле есть виртуальные машины, соответствующие соответствующему term; узлы с наибольшей суммой являются наиболее предпочтительными.
anti_affinity
словарь
Описывает правила планирования противопривязки виртуальных машин, например, избегать размещения этой виртуальной машины на том же узле, зоне и т. д., что и некоторые другие виртуальные машины.
hard
словарь
Если требования противопривязки, указанные в этом поле, не выполняются во время планирования, виртуальная машина не будет запланирована на узел. Если требования противопривязки, указанные в этом поле, перестают выполняться в какой-то момент во время выполнения виртуальной машины (например, из-за обновления метки виртуальной машины), система может или не может попытаться в конечном итоге вытеснить виртуальную машину с узла. При наличии нескольких элементов списки узлов, соответствующие каждому term, пересекаются, т.е. все условия должны быть выполнены.
soft
словарь
Планировщик предпочтёт размещать виртуальные машины на узлах, удовлетворяющих выражениям противопривязки, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько из этих выражений. Узел, который предпочтительнее всего, — это узел с наибольшей суммой весов, т.е. для каждого узла, удовлетворяющего всем требованиям планирования (запрос ресурсов, выражения противопривязки requiredDuringScheduling и т. д.), вычислите сумму, перебирая элементы этого поля и добавляя weight к сумме, если на узле есть виртуальные машины, соответствующие соответствующему term; узлы с наибольшей суммой являются наиболее предпочтительными.
api_key
строка
Токен, используемый для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_API_KEY.
bootloader
строка
Укажите загрузчик виртуальной машины.
По умолчанию для загрузки виртуальных машин используется BIOS.
ca_cert
путь
Путь к сертификату CA, используемому для аутентификации с API. Для предотвращения ошибок проверки сертификата необходимо предоставить цепочку сертификатов целиком. Также можно указать через переменную окружения K8S_AUTH_SSL_CA_CERT.

алиасы: ssl_ca_cert
client_cert
путь
Путь к сертификату, используемому для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_CERT_FILE.

алиасы: cert_file
client_key
путь
Путь к файлу ключа, используемому для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_KEY_FILE.

алиасы: key_file
cloud_init_nocloud
словарь
Представляет источник данных пользователя NoCloud для cloud-init. Данные NoCloud будут добавлены в виде диска к виртуальной машине. Необходимо наличие правильной установки cloud-init внутри гостевой системы. Дополнительная информация https://kubevirt.io/api-reference/master/definitions.html#_v1_cloudinitnocloudsource
context
строка
Имя контекста, найденного в файле конфигурации. Также можно указать через переменную окружения K8S_AUTH_CONTEXT.
cpu_cores
целое число
Количество ядер процессора.
cpu_features
список / элементы=строка
Список словарей для настройки функций, предоставляемых выбранной моделью процессора.
Примечание: Атрибут политики можно либо опустить, либо задать одно из следующих значений: force, require, optional, disable, forbid.
Примечание: Если политика не указана для функции, она будет установлена по умолчанию как require.
Дополнительная информация о политиках: https://libvirt.org/formatdomain.html#elementsCPU
cpu_limit
целое число
Преобразуется в значение миллиядер и умножается на 100. Результирующее значение — это общее количество времени работы процессора, которое может использовать контейнер каждые 100 мс. Виртуальная машина не может использовать больше своей доли времени работы процессора в течение этого интервала.
cpu_model
строка
Модель процессора.
Список доступных моделей можно посмотреть здесь: https://github.com/libvirt/libvirt/blob/master/src/cpu_map/index.xml.
Примечание: Пользователь может определить модель процессора по умолчанию как default-cpu-model в kubevirt-config ConfigMap, если не задано, используется host-model.
Примечание: Убедитесь, что модель процессора узла, на котором вы запускаете виртуальную машину, имеет такой же или более высокий семейство процессоров.
Примечание: Если модель процессора не определена, у виртуальной машины будет модель процессора, наиболее близкая к модели процессора, используемой на узле, на котором работает виртуальная машина.
cpu_shares
целое число
Укажите долю процессора.
disks
список / элементы=строка
Список словарей, которые определяют диски виртуальной машины.
Доступ к диску можно получить с помощью четырех типов: disk, lun, cdrom, floppy.
Все возможные параметры конфигурации доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_disk
Каждый диск должен иметь указанный volume, который объявляет тип тома диска. Все возможные параметры конфигурации тома доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_volume.
force
булево
    Варианты:
  • нет ←
  • да
Если установлено no, и state — present, существующий объект будет заменён.
headless
строка
Укажите, должна ли виртуальная машина иметь подключенное минимальное конфигурационное устройство видео и графики.
По умолчанию виртуальной машине будет применено минимальное конфигурационное устройство видео и графики. Устройство видео совместимо с vga и имеет размер памяти 16 МБ.
host
строка
Укажите URL для доступа к API. Также можно указать через переменную окружения K8S_AUTH_HOST.
hostname
строка
Указывает имя хоста виртуальной машины. Имя хоста будет установлено либо DHCP, либо cloud-init, если настроено, либо будет использовано имя виртуальной машины.
hugepage_size
строка
Укажите размер огромной страницы.
interfaces
список / элементы=строка
Интерфейс определяет виртуальный сетевой интерфейс виртуальной машины (также называется передним интерфейсом).
Все возможные параметры конфигурации интерфейсов доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_interface
Каждый интерфейс должен иметь указанный network, который объявляет, к какому логическому или физическому устройству он подключён (также называется задним интерфейсом). Все возможные параметры конфигурации сети доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_network.
kubeconfig
путь
Путь к существующему файлу конфигурации Kubernetes. Если не указан, и другие параметры подключения не указаны, клиент openshift попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.json. Также можно указать через переменную окружения K8S_AUTH_KUBECONFIG.
labels
словарь
Метки — это пары ключ/значение, которые прикрепляются к виртуальным машинам. Метки предназначены для указания идентификационных атрибутов виртуальных машин, которые имеют смысл и актуальны для пользователей, но не подразумевают семантики для основной системы. Метки могут использоваться для организации и выбора подмножеств виртуальных машин. Метки могут быть прикреплены к виртуальным машинам при их создании и впоследствии добавлены и изменены в любое время.
Дополнительная информация о метках, используемых для внутренней реализации https://kubevirt.io/user-guide/#/misc/annotations_and_labels
machine_type
строка
Тип машины QEMU — это фактический чипсет виртуальной машины.
memory
string
Объем памяти, который должен запросить виртуальная машина.
Например, 1024Mi.
memory_limit
string
Максимальный объем памяти, который должна использовать виртуальная машина.
Например, 1024Mi.
merge_type
list / elements=string
    Choices:
  • json
  • merge
  • strategic-merge
Указывает, нужно ли переопределить стандартный подход к слиянию исправлений определенным типом.
Если указано несколько типов слияния, они будут применяться в указанном порядке.
По умолчанию ['strategic-merge', 'merge'], что идеально подходит для использования одних и тех же параметров для типов ресурсов, которые объединяют пользовательские ресурсы и встроенные ресурсы, поскольку определения пользовательских ресурсов обычно не обновляются с помощью обычного стратегического слияния.
См. https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/#use-a-json-merge-patch-to-update-a-deployment
name
string / required
Имя предустановки виртуальной машины.
namespace
string / required
Пространство имен, в котором существует предустановка виртуальной машины.
node_affinity
dictionary
Описание правил планирования сродства виртуальной машины, например, расположить эту виртуальную машину на том же узле, зоне и т. д., что и некоторые другие виртуальные машины.
hard
dictionary
Если требования к сродству, указанные в этом поле, не выполняются во время планирования, виртуальная машина не будет запланирована на узел. Если требования к сродству, указанные в этом поле, перестанут выполняться в какой-то момент во время выполнения виртуальной машины (например, из-за обновления), система может или не может попытаться в конечном итоге вытеснить виртуальную машину с её узла.
soft
dictionary
Планировщик предпочтительно будет планировать виртуальные машины на узлы, которые удовлетворяют выражениям сродства, указанным в этом поле, но он может выбрать узел, который нарушает одно или несколько выражений. Узел, который предпочтительнее всего, — это узел с наибольшей суммой весов, т. е. для каждого узла, который удовлетворяет всем требованиям планирования (запросы на ресурсы, выражения сродства, необходимые во время планирования и т. д.), вычислите сумму, перебирая элементы этого поля и добавляя weight к сумме, если узел соответствует соответствующим выражениям соответствия; узлы с наибольшей суммой являются наиболее предпочтительными.
password
string
Введите пароль для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_PASSWORD.
Пожалуйста, ознакомьтесь с описанием параметра username, чтобы понять, когда этот параметр применим.
persist_config
boolean
    Choices:
  • нет
  • да
Указывает, нужно ли сохранять токены обновления конфигурации kube. Также можно указать через переменную окружения K8S_AUTH_PERSIST_CONFIG.
Когда контекст k8s использует учетные данные пользователя с токенами обновления (например, oidc или gke/gcloud auth), токен обновляется библиотекой k8s python, но по умолчанию не сохраняется. В результате старый токен обновления может истечь, и следующая аутентификация может завершиться неудачей. Установка этого флага в значение true сообщит библиотеке k8s python о сохранении нового токена обновления в файл конфигурации kube.
По умолчанию false.
Обратите внимание, что текущая версия библиотеки k8s python пока не поддерживает установку этого флага в значение True.
Исправление для этой библиотеки k8s python находится здесь: https://github.com/kubernetes-client/python-base/pull/169
proxy
string
URL HTTP-прокси, который нужно использовать для подключения. Также можно указать через переменную окружения K8S_AUTH_PROXY.
Обратите внимание, что этот модуль не подхватывает типичные настройки прокси из среды (например, HTTP_PROXY).
resource_definition
dictionary
Частичное YAML-определение объекта, который создается/обновляется. Здесь можно определить параметры ресурсов Kubernetes, не охваченные параметрами этого модуля.
ПРИМЕЧАНИЕ: resource_definition имеет более низкий приоритет, чем параметры модуля. Если вы попытаетесь определить, например, metadata.namespace здесь, это значение будет проигнорировано, и вместо него будет использовано namespace.

алиасы: definition, inline
selector
dictionary
Селектор — это запрос по меткам для набора предустановок виртуальных машин.
smbios_uuid
string
Для обеспечения согласованного представления виртуализированного оборудования для гостевой ОС можно задать UUID SMBIOS.
state
string
    Choices:
  • наличие ←
  • отсутствие
Создание или удаление предустановок виртуальных машин.
subdomain
string
Если указано, полное доменное имя виртуальной машины будет hostname.subdomain.namespace.svc.cluster_domain. Если не указано, у виртуальной машины не будет доменного имени вообще. Запись DNS будет разрешать виртуальную машину, независимо от того, может ли сама виртуальная машина получить имя хоста.
tablets
list / elements=string
Укажите планшеты, которые будут использоваться как устройства ввода.
username
string
Введите имя пользователя для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_USERNAME.
Обратите внимание, что это работает только с кластерами, настроенными на использование HTTP Basic Auth. Если ваш кластер имеет другой тип аутентификации (например, OAuth2 в OpenShift), этот параметр не будет работать должным образом, и вам следует обратиться к модулю k8s_auth, поскольку он может выполнить то, что вам нужно.
validate_certs
boolean
    Choices:
  • нет
  • да
Указывает, нужно ли проверять сертификаты SSL сервера API. Также можно указать через переменную окружения K8S_AUTH_VERIFY_SSL.

алиасы: verify_ssl
wait
boolean
    Choices:
  • нет
  • да ←
True, если модуль должен ожидать, пока ресурс не перейдет в нужное состояние.
wait_sleep
string
По умолчанию:
5
Количество секунд, которое нужно подождать между проверками.
wait_timeout
integer
По умолчанию:
120
Время в секундах, в течение которого модуль должен ожидать, пока ресурс не перейдет в нужное состояние.

Примечания

Примечание

  • Клиент OpenShift Python обертывает клиент K8s Python, обеспечивая полный доступ ко всем API и моделям, доступным на обеих платформах. Подробнее о версиях API и дополнительной информации посетите https://github.com/openshift/openshift-restclient-python
  • Чтобы избежать ошибок проверки сертификатов SSL, когда validate_certs имеет значение True, полная цепочка сертификатов сервера API должна быть предоставлена через ca_cert или в файле kubeconfig.
  • Для использования этого модуля необходимо установить Openshift Python SDK. Чтобы убедиться, что он установлен с правильной версией, можно создать следующую задачу: pip: name=openshift>=0.8.2

Примеры

- name: Create virtual machine preset 'vmi-preset-small'
  community.kubevirt.kubevirt_preset:
      state: present
      name: vmi-preset-small
      namespace: vms
      memory: 64M
      selector:
        matchLabels:
            kubevirt.io/vmPreset: vmi-preset-small

- name: Remove virtual machine preset 'vmi-preset-small'
  community.kubevirt.kubevirt_preset:
      state: absent
      name: vmi-preset-small
      namespace: vms

Возвращаемые значения

Общие возвращаемые значения описаны в здесь, следующие — поля, уникальные для этого модуля:

Ключ Возвращаемое значение Описание
kubevirt_preset
complex
успех
Предустановка виртуальной машины, управляемая пользователем.
Этот словарь содержит все значения, возвращенные API KubeVirt; все параметры описаны здесь https://kubevirt.io/api-reference/master/definitions.html#_v1_virtualmachineinstancepreset



Авторы

  • Команда KubeVirt (@kubevirt)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/kubevirt/kubevirt_preset_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API