Spec-Zone.ru › Ansible 2.11

community.kubevirt.kubevirt_pvc – Управление PVC на Kubernetes

Примечание

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

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

Чтобы использовать его в книге задач, укажите: community.kubevirt.kubevirt_pvc.

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

Обзор

  • Используйте Openshift Python SDK для управления PVC на Kubernetes
  • Поддержка Containerized Data Importer по умолчанию

Требования

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

  • python >= 2.7
  • openshift >= 0.8.2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
access_modes
список / элементы=строка
Содержит требуемые режимы доступа для тома.
Подробнее: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
annotations
словарь
Аннотации, прикрепленные к этому объекту.
https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
api_key
строка
Токен, используемый для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_API_KEY.
ca_cert
путь
Путь к сертификату CA, используемому для аутентификации с API. Для предотвращения ошибок проверки сертификатов необходимо предоставить полный цепочку сертификатов. Также может быть задан через переменную среды K8S_AUTH_SSL_CA_CERT.

псевдонимы: ssl_ca_cert
cdi_source
словарь
Если данные должны быть скопированы на PVC с помощью Containerized Data Importer, вы можете указать источник данных (вместе с дополнительной конфигурацией), а также его формат.
Допустимые типы источников: пустой, http, s3, реестр, pvc и загрузка. Последний требует использования модуля community.kubevirt.kubevirt_cdi_upload для фактической загрузки.
Формат исходных данных задается с помощью необязательного параметра content_type. Допустимые значения — kubevirt (по умолчанию; необработанное изображение) и archive (tar.gz).
Использует синтаксис источника DataVolume: https://github.com/kubevirt/containerized-data-importer/blob/master/doc/datavolumes.md#https3registry-source
client_cert
путь
Путь к сертификату, используемому для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_CERT_FILE.

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

псевдонимы: key_file
context
строка
Имя контекста, найденного в файле конфигурации. Также может быть задано через переменную среды K8S_AUTH_CONTEXT.
force
булево
    Варианты:
  • нет ←
  • да
Если установлено значение True, и state равно present, существующий объект будет заменён.
host
строка
Укажите URL для доступа к API. Также может быть задан через переменную среды K8S_AUTH_HOST.
kubeconfig
путь
Путь к существующему файлу конфигурации Kubernetes. Если не указан и не указаны другие параметры подключения, клиент openshift попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.json. Также может быть задан через переменную среды K8S_AUTH_KUBECONFIG.
labels
словарь
Метки, прикреплённые к этому объекту.
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
merge_type
список / элементы=строка
    Варианты:
  • 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
Если указано более одного merge_type, merge_types будут проверены в порядке следования.
name
строка / обязательно
Используется для указания имени объекта PVC.
namespace
строка / обязательно
Используется для указания пространства имён объекта PVC.
password
строка
Укажите пароль для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_PASSWORD.
Обратитесь к описанию параметра username, чтобы узнать, когда этот параметр применим.
persist_config
булево
    Варианты:
  • нет
  • да
Сохранять ли токены обновления конфигурации 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
строка
URL HTTP-прокси, который следует использовать для подключения. Также может быть задан через переменную среды K8S_AUTH_PROXY.
Обратите внимание, что этот модуль не использует типичные настройки прокси из среды (например, HTTP_PROXY).
resource_definition
словарь
Частичное YAML-описание объекта PVC, который создается/обновляется. Здесь вы можете определить параметры ресурса Kubernetes PVC, которые не покрываются параметрами этого модуля.
ПРИМЕЧАНИЕ: resource_definition имеет более низкий приоритет, чем параметры модуля. Если вы попытаетесь определить, например, metadata.namespace здесь, это значение будет проигнорировано, и вместо этого будет использоваться namespace.

псевдонимы: definition, inline
selector
словарь
Запрос метки по томам для рассмотрения при привязке.
https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
size
строка
Объем выделяемого хранилища для PVC.

псевдонимы: storage
state
строка
    Варианты:
  • существующий ←
  • отсутствует
Определяет, следует ли создать, исправить или удалить объект. При установке значения present, объект будет создан, если он ещё не существует. При установке значения absent, существующий объект будет удалён. При установке значения present, существующий объект будет изменён, если его атрибуты отличаются от тех, которые указаны с помощью параметров модуля и resource_definition.
storage_class_name
строка
Имя StorageClass, необходимое для претензии.
Подробнее: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
username
строка
Укажите имя пользователя для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_USERNAME.
Обратите внимание, что это работает только с кластерами, настроенными на использование HTTP Basic Auth. Если ваш кластер имеет другой вид аутентификации (например, OAuth2 в OpenShift), этот параметр не будет работать должным образом, и вам следует изучить модуль k8s_auth, поскольку он может сделать то, что вам нужно.
validate_certs
булево
    Варианты:
  • нет
  • да
Проверять ли сертификаты SSL сервера API. Также может быть задан через переменную среды K8S_AUTH_VERIFY_SSL.

псевдонимы: verify_ssl
volume_mode
строка
Это определяет тип тома, требуемый претензией. Значение Filesystem подразумевается, когда оно не включено в спецификацию претензии. Это альфа-функция Kubernetes и может измениться в будущем.
volume_name
строка
Это ссылка на привязку PersistentVolume, поддерживающую данную претензию.
wait
булево
    Варианты:
  • нет ←
  • да
Если установлено, этот модуль будет ждать, пока PVC не будет привязан, и CDI (если включен) не завершит свою работу перед возвращением.
Используется только если state установлено в present.
Если не используется в сочетании с cdi_source, это может привести к таймауту, так как кластеры могут быть настроены не связывать PVC до первого использования.
wait_timeout
целое число
Значение по умолчанию:
300
Указывает время в секундах ожидания завершения создания PVC, если параметр wait включен.
Значение по умолчанию достаточно велико из-за ожидания, что CDI может занять некоторое время для завершения своей работы.

Примечания

Примечание

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

Примеры

- name: Create a PVC and import data from an external source
  community.kubevirt.kubevirt_pvc:
    name: pvc1
    namespace: default
    size: 100Mi
    access_modes:
      - ReadWriteOnce
    cdi_source:
      http:
        url: https://www.source.example/path/of/data/vm.img
      # If the URL points to a tar.gz containing the disk image, uncomment the line below:
      #content_type: archive

- name: Create a PVC as a clone from a different PVC
  community.kubevirt.kubevirt_pvc:
    name: pvc2
    namespace: default
    size: 100Mi
    access_modes:
      - ReadWriteOnce
    cdi_source:
      pvc:
        namespace: source-ns
        name: source-pvc

- name: Create a PVC ready for data upload
  community.kubevirt.kubevirt_pvc:
    name: pvc3
    namespace: default
    size: 100Mi
    access_modes:
      - ReadWriteOnce
    cdi_source:
      upload: yes
    # You need the kubevirt_cdi_upload module to actually upload something

- name: Create a PVC with a blank raw image
  community.kubevirt.kubevirt_pvc:
    name: pvc4
    namespace: default
    size: 100Mi
    access_modes:
      - ReadWriteOnce
    cdi_source:
      blank: yes

- name: Create a PVC and fill it with data from a container
  community.kubevirt.kubevirt_pvc:
    name: pvc5
    namespace: default
    size: 100Mi
    access_modes:
      - ReadWriteOnce
    cdi_source:
      registry:
        url: "docker://kubevirt/fedora-cloud-registry-disk-demo"

Значения возврата

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

Ключ Возвращаемое значение Описание
result
complex
успех
Созданный, измененный или иначе присутствующий объект. Будет пустым в случае удаления.

api_version
string
успех
Версионированная схема этого представления объекта.

duration
integer
когда wait равно true
время выполнения задачи в секундах

Пример:
48
items
list / elements=string
при resource_definition или src содержит список объектов
Возвращается только тогда, когда несколько документов yaml передаются в src или resource_definition

kind
string
успех
Представляет REST-ресурс, который представляет этот объект.

metadata
complex
успех
Стандартные метаданные объекта. Включают имя, пространство имён, аннотации, метки и т. д.

spec
complex
успех
Конкретные атрибуты объекта. Будут меняться в зависимости от api_version и kind.

status
complex
успех
Текущие детали состояния объекта.



Авторы

  • Команда 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_pvc_module.html

Spec-Zone.ru

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