Spec-Zone.ru › Ansible

Модуль 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

Укажите аннотации, которые нужно задать для VirtualMachine.

Используется только при state=present.

api_key

string

Токен для аутентификации в API.

Также можно указать с помощью переменной среды K8S_AUTH_API_KEY.

api_version

string

Используйте этот параметр, чтобы задать версию API KubeVirt.

По умолчанию: "kubevirt.io/v1"

ca_cert

псевдонимы: ssl_ca_cert

path

Путь к сертификату центра сертификации, используемому для аутентификации в API. Чтобы избежать ошибок проверки сертификата, необходимо предоставить полную цепочку сертификатов.

Также можно указать с помощью переменной среды K8S_AUTH_SSL_CA_CERT.

client_cert

псевдонимы: cert_file

path

Путь к сертификату, используемому для аутентификации в API.

Также можно указать с помощью переменной среды K8S_AUTH_CERT_FILE.

client_key

псевдонимы: key_file

path

Путь к файлу ключа, используемому для аутентификации в API.

Также можно указать с помощью переменной среды K8S_AUTH_KEY_FILE.

context

string

Имя контекста, указанного в файле конфигурации.

Также можно указать с помощью переменной среды K8S_AUTH_CONTEXT.

data_volume_templates

list / элементы=dictionary

Укажите шаблоны DataVolume для VirtualMachine.

См. https://kubevirt.io/api-reference/main/definitions.html#_v1_datavolumetemplatespec

delete_options

dictionary

Настройка поведения при удалении объекта.

Используется только при state=absent.

preconditions

dictionary

Укажите условие, которое должно быть выполнено для продолжения удаления.

resourceVersion

string

Укажите версию ресурса целевого объекта.

uid

string

Укажите UID целевого объекта.

propagationPolicy

string

Используется для управления удалением зависимых объектов.

Если параметр не указан, будет использоваться политика по умолчанию для типа объекта. Она может различаться для разных типов объектов.

Варианты:

  • "Foreground"
  • "Background"
  • "Orphan"

force

boolean

Если задано значение force=yes и указан state=present, существующий объект будет заменён.

Варианты:

  • false ← (по умолчанию)
  • true

generate_name

string

Укажите основу имени VirtualMachine; кластер автоматически добавит случайные символы, чтобы создать уникальное имя.

Используется только при state=present.

Взаимоисключающий параметр с name.

hidden_fields

list / элементы=string

добавлено в kubevirt.core 2.2.0

Скрыть в результате поля, соответствующие этому параметру.

Например, это могут быть hidden_fields=[metadata.managedFields] или hidden_fields=[metadata.annotations[kubemacpool.io/transaction-timestamp]].

По умолчанию: ["metadata.annotations[kubemacpool.io/transaction-timestamp]", "metadata.managedFields"]

host

string

Укажите URL для доступа к API.

Также можно указать с помощью переменной среды K8S_AUTH_HOST.

impersonate_groups

list / элементы=string

Группа или группы, от имени которых выполняется операция.

Также можно указать с помощью переменной среды K8S_AUTH_IMPERSONATE_GROUPS, например Group1,Group2.

impersonate_user

string

Имя пользователя, от имени которого выполняется операция.

Также можно указать с помощью переменной среды K8S_AUTH_IMPERSONATE_USER.

instancetype

dictionary

Укажите селектор Instancetype для VirtualMachine.

Используется только при state=present.

kubeconfig

any

Путь к существующему файлу конфигурации Kubernetes. Если он не указан и не заданы другие параметры подключения, клиент Kubernetes попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.

Также можно указать с помощью переменной среды K8S_AUTH_KUBECONFIG.

Можно указать несколько файлов конфигурации Kubernetes, используя в качестве разделителя ; на платформе Windows или : на других платформах.

Конфигурацию Kubernetes можно указать в виде словаря. Для этой возможности требуется версия клиента Kubernetes для Python >= 17.17.0.

labels

dictionary

Укажите метки, которые нужно задать для VirtualMachine.

name

string

Укажите имя VirtualMachine.

Этот параметр игнорируется, если не задан state=present.

Взаимоисключающий параметр с generate_name.

namespace

string / обязательный

Укажите пространство имён для VirtualMachine.

no_proxy

string

Разделённый запятыми список хостов, доменов, IP-адресов или CIDR-диапазонов, для которых не следует использовать прокси.

Также можно указать с помощью переменной среды K8S_AUTH_NO_PROXY.

Обратите внимание: этот модуль не использует типичные настройки прокси из среды (например, NO_PROXY).

Для этой возможности требуется kubernetes>=19.15.0. При версии библиотеки Kubernetes ниже 19.15.0 происходит сбой, даже если no_proxy задан правильно.

Пример значения: localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16.

password

string

Укажите пароль для аутентификации в API.

Также можно указать с помощью переменной среды K8S_AUTH_PASSWORD.

Информацию о том, в каких случаях применим этот параметр, см. в описании параметра username.

persist_config

boolean

Сохранять ли токены обновления конфигурации kube.

Также можно указать с помощью переменной среды K8S_AUTH_PERSIST_CONFIG.

Если в контексте k8s используются учётные данные пользователя с токенами обновления (например, oidc или аутентификация gke/gcloud), токен обновляется библиотекой клиента k8s для Python, но по умолчанию не сохраняется. Поэтому срок действия старого токена обновления может истечь, и следующая аутентификация завершится ошибкой. Если задать этому параметру значение true, клиент k8s для Python сохранит новый токен обновления в файле конфигурации kube.

По умолчанию отключено.

Варианты:

  • false
  • true

preference

dictionary

Укажите селектор Preference для VirtualMachine.

Используется только при state=present.

proxy

string

URL HTTP-прокси, используемого для подключения.

Также можно указать с помощью переменной среды K8S_AUTH_PROXY.

Обратите внимание: этот модуль не использует типичные настройки прокси из среды (например, HTTP_PROXY).

proxy_headers

dictionary

Заголовок, используемый для HTTP-прокси.

Документацию можно найти здесь: https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html?highlight=proxy_headers#urllib3.util.make_headers.

basic_auth

string

Имя пользователя и пароль, разделённые двоеточием, для заголовка базовой аутентификации.

Также можно указать с помощью переменной среды K8S_AUTH_PROXY_HEADERS_BASIC_AUTH.

proxy_basic_auth

string

Имя пользователя и пароль, разделённые двоеточием, для заголовка базовой аутентификации прокси.

Также можно указать с помощью переменной среды K8S_AUTH_PROXY_HEADERS_PROXY_BASIC_AUTH.

user_agent

string

Строка с нужным значением user-agent, например foo/1.0.

Также можно указать с помощью переменной среды K8S_AUTH_PROXY_HEADERS_USER_AGENT.

run_strategy

string

добавлено в kubevirt.core 2.0.0

Укажите RunStrategy для VirtualMachine.

Взаимоисключающий параметр с running.

Варианты:

  • "Always"
  • "Halted"
  • "Manual"
  • "RerunOnFailure"
  • "Once"

running

boolean

Укажите, должна ли VirtualMachine быть запущена.

Взаимоисключающий параметр с run_strategy.

По умолчанию используется значение running=yes, если не заданы running и run_strategy.

Варианты:

  • false
  • true

spec

dictionary

Укажите спецификацию шаблона для VirtualMachine.

См. https://kubevirt.io/api-reference/main/definitions.html#_v1_virtualmachineinstancespec

state

string

Определяет, следует ли создать, изменить или удалить объект.

Если задано значение state=present, объект будет создан, если он ещё не существует.

Если задано значение state=absent, существующий объект будет удалён.

Если задано значение state=present, существующий объект будет изменён, если его атрибуты отличаются от указанных.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

username

string

Укажите имя пользователя для аутентификации в API.

Также можно указать с помощью переменной среды K8S_AUTH_USERNAME.

validate_certs

псевдонимы: verify_ssl

boolean

Проверять ли SSL-сертификаты сервера API.

Также можно указать с помощью переменной среды K8S_AUTH_VERIFY_SSL.

Варианты:

  • false
  • true

wait

boolean

Ожидать ли перехода VirtualMachine в состояние готовности.

Варианты:

  • false ← (по умолчанию)
  • true

wait_sleep

integer

Количество секунд ожидания между проверками.

Игнорируется, если не задан wait.

По умолчанию: 5

wait_timeout

integer

Время ожидания в секундах, в течение которого ресурс должен перейти в состояние готовности.

Игнорируется, если не задан wait.

По умолчанию: 120

Примечания

Примечание

  • Чтобы избежать ошибок проверки 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

Был ли изменён VirtualMachine.

Возвращается: при успешном выполнении

Пример: true

duration

integer

Время выполнения задачи в секундах.

Возвращается: когда wait=true.

Пример: 48

method

string

Метод, выполненный в API Kubernetes.

Возвращается: при успешном выполнении

Авторы

  • Проект KubeVirt.io

Ссылки на коллекцию

  • Отслеживание проблем
  • Главная страница
  • Репозиторий (исходный код)
  • Сообщить о проблеме
  • Связь

© 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

Spec-Zone.ru

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