Spec-Zone.ru › Ansible 2.10

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, registry, pvc и upload. Последний требует использования модуля 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, типы слияния будут проверены в указанном порядке.
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, которые не покрываются параметрами этого модуля.
ПРИМЕЧАНИЕ: 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/kubevirt/kubevirt_pvc_module.html

Spec-Zone.ru

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