Модуль kubevirt.core.kubevirt_vm — создание или удаление виртуальных машин KubeVirt
Примечание
Этот модуль входит в коллекцию kubevirt.core (версия 2.2.4).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install kubevirt.core. Для использования этого модуля необходимы дополнительные требования; подробную информацию см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: kubevirt.core.kubevirt_vm.
Краткое описание
- Использует клиент Kubernetes для Python для создания или удаления виртуальных машин KubeVirt.
- Параметры для создания виртуальной машины передаются в виде аргументов модуля.
- Поддерживается аутентификация с помощью файла конфигурации, сертификатов, пароля или токена.
- Поддерживается режим проверки.
Требования
Перечисленные ниже требования необходимы на хосте, выполняющем этот модуль.
- python >= 3.9
- kubernetes >= 28.1.0
- PyYAML >= 3.11
- jsonpatch
Параметры
Параметр | Комментарии |
|---|---|
annotations dictionary | Укажите аннотации, которые нужно задать для Используется только при |
api_key string | Токен для аутентификации в API. Также можно указать с помощью переменной среды |
api_version string | Используйте этот параметр, чтобы задать версию API KubeVirt. По умолчанию: |
ca_cert псевдонимы: ssl_ca_cert path | Путь к сертификату центра сертификации, используемому для аутентификации в API. Чтобы избежать ошибок проверки сертификата, необходимо предоставить полную цепочку сертификатов. Также можно указать с помощью переменной среды |
client_cert псевдонимы: cert_file path | Путь к сертификату, используемому для аутентификации в API. Также можно указать с помощью переменной среды |
client_key псевдонимы: key_file path | Путь к файлу ключа, используемому для аутентификации в API. Также можно указать с помощью переменной среды |
context string | Имя контекста, указанного в файле конфигурации. Также можно указать с помощью переменной среды |
data_volume_templates list / элементы=dictionary | Укажите шаблоны См. https://kubevirt.io/api-reference/main/definitions.html#_v1_datavolumetemplatespec |
delete_options dictionary | Настройка поведения при удалении объекта. Используется только при |
|
preconditions dictionary |
Укажите условие, которое должно быть выполнено для продолжения удаления. |
|
resourceVersion string |
Укажите версию ресурса целевого объекта. |
|
uid string |
Укажите |
|
propagationPolicy string |
Используется для управления удалением зависимых объектов. Если параметр не указан, будет использоваться политика по умолчанию для типа объекта. Она может различаться для разных типов объектов. Варианты:
|
force boolean | Если задано значение Варианты:
|
generate_name string | Укажите основу имени Используется только при Взаимоисключающий параметр с |
list / элементы=string добавлено в kubevirt.core 2.2.0 | Скрыть в результате поля, соответствующие этому параметру. Например, это могут быть По умолчанию: |
host string | Укажите URL для доступа к API. Также можно указать с помощью переменной среды |
impersonate_groups list / элементы=string | Группа или группы, от имени которых выполняется операция. Также можно указать с помощью переменной среды |
impersonate_user string | Имя пользователя, от имени которого выполняется операция. Также можно указать с помощью переменной среды |
instancetype dictionary | Укажите селектор Используется только при |
kubeconfig any | Путь к существующему файлу конфигурации Kubernetes. Если он не указан и не заданы другие параметры подключения, клиент Kubernetes попытается загрузить файл конфигурации по умолчанию из ~/.kube/config. Также можно указать с помощью переменной среды Можно указать несколько файлов конфигурации Kubernetes, используя в качестве разделителя Конфигурацию Kubernetes можно указать в виде словаря. Для этой возможности требуется версия клиента Kubernetes для Python >= 17.17.0. |
labels dictionary | Укажите метки, которые нужно задать для |
name string | Укажите имя Этот параметр игнорируется, если не задан Взаимоисключающий параметр с |
namespace string / обязательный | Укажите пространство имён для |
no_proxy string | Разделённый запятыми список хостов, доменов, IP-адресов или CIDR-диапазонов, для которых не следует использовать прокси. Также можно указать с помощью переменной среды Обратите внимание: этот модуль не использует типичные настройки прокси из среды (например, Для этой возможности требуется Пример значения: |
password string | Укажите пароль для аутентификации в API. Также можно указать с помощью переменной среды Информацию о том, в каких случаях применим этот параметр, см. в описании параметра |
persist_config boolean | Сохранять ли токены обновления конфигурации kube. Также можно указать с помощью переменной среды Если в контексте k8s используются учётные данные пользователя с токенами обновления (например, oidc или аутентификация gke/gcloud), токен обновляется библиотекой клиента k8s для Python, но по умолчанию не сохраняется. Поэтому срок действия старого токена обновления может истечь, и следующая аутентификация завершится ошибкой. Если задать этому параметру значение true, клиент k8s для Python сохранит новый токен обновления в файле конфигурации kube. По умолчанию отключено. Варианты:
|
preference dictionary | Укажите селектор Используется только при |
proxy string | URL HTTP-прокси, используемого для подключения. Также можно указать с помощью переменной среды Обратите внимание: этот модуль не использует типичные настройки прокси из среды (например, |
proxy_headers dictionary | Заголовок, используемый для HTTP-прокси. Документацию можно найти здесь: https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html?highlight=proxy_headers#urllib3.util.make_headers. |
|
basic_auth string |
Имя пользователя и пароль, разделённые двоеточием, для заголовка базовой аутентификации. Также можно указать с помощью переменной среды |
|
proxy_basic_auth string |
Имя пользователя и пароль, разделённые двоеточием, для заголовка базовой аутентификации прокси. Также можно указать с помощью переменной среды |
|
user_agent string |
Строка с нужным значением user-agent, например foo/1.0. Также можно указать с помощью переменной среды |
run_strategy string добавлено в kubevirt.core 2.0.0 | Укажите Взаимоисключающий параметр с Варианты:
|
running boolean | Укажите, должна ли Взаимоисключающий параметр с По умолчанию используется значение Варианты:
|
spec dictionary | Укажите спецификацию шаблона для См. https://kubevirt.io/api-reference/main/definitions.html#_v1_virtualmachineinstancespec |
state string | Определяет, следует ли создать, изменить или удалить объект. Если задано значение Если задано значение Если задано значение Варианты:
|
username string | Укажите имя пользователя для аутентификации в API. Также можно указать с помощью переменной среды |
validate_certs псевдонимы: verify_ssl boolean | Проверять ли SSL-сертификаты сервера API. Также можно указать с помощью переменной среды Варианты:
|
wait boolean | Ожидать ли перехода Варианты:
|
wait_sleep integer | |
wait_timeout integer | Время ожидания в секундах, в течение которого ресурс должен перейти в состояние готовности. Игнорируется, если не задан По умолчанию: |
Примечания
Примечание
- Чтобы избежать ошибок проверки SSL-сертификата при
validate_certs=yes, полную цепочку сертификатов сервера API необходимо предоставить черезca_certили в файлеkubeconfig.
Примеры
- name: Create a VirtualMachine
kubevirt.core.kubevirt_vm:
state: present
name: testvm
namespace: default
labels:
app: test
instancetype:
name: u1.medium
preference:
name: fedora
spec:
domain:
devices:
interfaces:
- name: default
masquerade: {}
- name: bridge-network
bridge: {}
networks:
- name: default
pod: {}
- name: bridge-network
multus:
networkName: kindexgw
volumes:
- containerDisk:
image: quay.io/containerdisks/fedora:latest
name: containerdisk
- cloudInitNoCloud:
userData: |-
#cloud-config
# The default username is: fedora
ssh_authorized_keys:
- ssh-ed25519 AAAA...
name: cloudinit
- name: Create a VirtualMachine with a DataVolume template
kubevirt.core.kubevirt_vm:
state: present
name: testvm-with-dv
namespace: default
labels:
app: test
instancetype:
name: u1.medium
preference:
name: fedora
data_volume_templates:
- metadata:
name: testdv
spec:
source:
registry:
url: docker://quay.io/containerdisks/fedora:latest
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
spec:
domain:
devices: {}
volumes:
- dataVolume:
name: testdv
name: datavolume
- cloudInitNoCloud:
userData: |-
#cloud-config
# The default username is: fedora
ssh_authorized_keys:
- ssh-ed25519 AAAA...
name: cloudinit
wait: true
- name: Delete a VirtualMachine
kubevirt.core.kubevirt_vm:
name: testvm
namespace: default
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
result complex | Созданный объект. При удалении будет пустым. Возвращается: при успешном выполнении |
|
changed boolean |
Был ли изменён Возвращается: при успешном выполнении Пример: |
|
duration integer | |
|
method string |
Метод, выполненный в API Kubernetes. Возвращается: при успешном выполнении |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/kubevirt/core/kubevirt_vm_module.html