Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

Для использования в playbook укажите: community.general.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, вы можете указать источник данных (вместе с дополнительной конфигурацией), а также его формат.
Допустимые типы источников: blank, http, s3, registry, pvc и upload. Последний требует использования модуля community.general.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_definition имеет более низкий приоритет, чем параметры модуля. Если вы попытаетесь определить, например, metadata.namespace здесь, это значение будет проигнорировано, и вместо него будет использоваться namespace.

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

псевдонимы: storage
state
строка
    Варианты:
  • present ←
  • absent
Определяет, должен ли объект создаваться, обновляться или удаляться. Если установлено значение 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. Если ваш кластер имеет другой тип аутентификации (например, 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.general.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.general.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.general.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.general.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.general.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/general/kubevirt_pvc_module.html

Spec-Zone.ru

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