Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин является частью коллекции community.general (версия 1.3.2).

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

Для использования в книге задач укажите: community.general.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
словарь
Представляет источник пользовательских данных cloud-init NoCloud. Данные 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
целое число
Преобразуется в значение millicore и умножается на 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
строка
Укажите, должна ли виртуальная машина иметь подключенное минимальное конфигурирование устройства видео и графики.
По умолчанию для VirtualMachineInstance будет применена минимальная конфигурация устройства видео и графики. Устройство видео совместимо с 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 — это фактический чипсет виртуальной машины.
END_OF_DOCUMENT_MARKER
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
Планировщик отдаст предпочтение размещению виртуальных машин на узлах, удовлетворяющих выражениям сродства, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько выражений. Наиболее предпочтительным узлом является узел с наибольшей суммой весов, т. е. для каждого узла, удовлетворяющего всем требованиям планирования (запросы ресурсов, выражения сродства requiredDuringScheduling и т. д.), вычислить сумму, перебирая элементы этого поля и добавляя weight к сумме, если узел соответствует соответствующим match_expressions; узлы с наибольшей суммой являются наиболее предпочтительными.
password
string
Введите пароль для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_PASSWORD.
Пожалуйста, ознакомьтесь с описанием опции username, чтобы понять, когда следует использовать эту опцию.
persist_config
boolean
    Choices:
  • no
  • yes
Сохранять ли токены обновления 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:
  • present ←
  • absent
Создание или удаление предопределений виртуальных машин.
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:
  • no
  • yes
Требуется ли проверка сертификатов SSL API-сервера. Также можно указать через переменную окружения K8S_AUTH_VERIFY_SSL.

Псевдонимы: verify_ssl
wait
boolean
    Choices:
  • no
  • yes ←
True, если модуль должен ожидать, пока ресурс не перейдет в нужное состояние.
wait_sleep
string
добавлено в 0.2.0 community.general
По умолчанию:
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.general.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.general.kubevirt_preset:
      state: absent
      name: vmi-preset-small
      namespace: vms

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

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

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



Авторы

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

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

Spec-Zone.ru

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