k8s_raw - Управление объектами Kubernetes (K8s)
Новое в версии 2.5.
Обзор
- Используйте клиент OpenShift Python для выполнения операций CRUD над объектами K8s.
- Передавайте определение объекта из файла-источника или встраивайте его. См. примеры для чтения файлов и использования шаблонов Jinja.
- Доступ ко всему спектру API K8s.
- Авторизуйтесь с помощью файла конфигурации, сертификатов, пароля или токена.
- Поддерживает режим проверки.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.7
- openshift == 0.4.3
- PyYAML >= 3.11
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| api_key | Токен, используемый для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_API_KEY. | |
| api_version | По умолчанию: v1 | Используйте для указания версии API. Используйте для создания, удаления или поиска объекта без предоставления полного определения ресурса. Используйте в сочетании с kind, name и namespace для идентификации конкретного объекта. Если предоставлено определение ресурса, apiVersion из resource_definition переопределит этот параметр. псевдонимы: api, version |
| cert_file | Путь к сертификату, используемому для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_CERT_FILE. | |
| context | Имя контекста, найденного в файле конфигурации. Также может быть задан через переменную среды K8S_AUTH_CONTEXT. | |
| force |
| Если установлено в True, и state равно present, существующий объект будет заменен. |
| host | Укажите URL для доступа к API. Также может быть задан через переменную среды K8S_AUTH_HOST. | |
| key_file | Путь к файлу ключа, используемому для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_HOST. | |
| kind | Используйте для указания модели объекта. Используйте для создания, удаления или поиска объекта без предоставления полного определения ресурса. Используйте в сочетании с api_version, name и namespace для идентификации конкретного объекта. Если предоставлено определение ресурса, kind из resource_definition переопределит этот параметр. | |
| kubeconfig | Путь к существующему файлу конфигурации Kubernetes. Если не указан и не указаны другие параметры подключения, клиент openshift попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.json. Также может быть задан через переменную среды K8S_AUTH_KUBECONFIG. | |
| name | Используйте для указания имени объекта. Используйте для создания, удаления или поиска объекта без предоставления полного определения ресурса. Используйте в сочетании с api_version, kind и namespace для идентификации конкретного объекта. Если предоставлено определение ресурса, значение metadata.name из resource_definition переопределит этот параметр. | |
| namespace | Используйте для указания пространства имен объекта. Полезно при создании, удалении или поиске объекта без предоставления полного определения ресурса. Используйте в сочетании с api_version, kind и name для идентификации конкретного объекта. Если предоставлено определение ресурса, значение metadata.namespace из resource_definition переопределит этот параметр. | |
| password | Укажите пароль для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_PASSWORD. | |
| resource_definition | Укажите допустимое YAML-определение объекта при создании или обновлении. ПРИМЕЧАНИЕ: kind, api_version, name и namespace будут перезаписаны соответствующими значениями, найденными в предоставленном resource_definition. псевдонимы: определение, встраиваемое | |
| src | Укажите путь к файлу, содержащему допустимое YAML-определение объекта для создания или обновления. Взаимоисключающий с resource_definition. ПРИМЕЧАНИЕ: kind, api_version, name и namespace будут перезаписаны соответствующими значениями, найденными в конфигурации, считанной из файла src. Читает из локальной файловой системы. Для чтения из файловой системы контроллера Ansible используйте плагин поиска файла или плагин поиска шаблонов в сочетании с фильтром from_yaml и передайте результат в resource_definition. См. Примеры ниже. | |
| ssl_ca_cert | Путь к сертификату CA, используемому для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_SSL_CA_CERT. | |
| state |
| Определяет, должен ли объект быть создан, изменён или удалён. При установке в present, объект будет создан, если он ещё не существует. При установке в absent, существующий объект будет удалён. При установке в present, существующий объект будет изменён, если его атрибуты отличаются от тех, которые указаны с помощью resource_definition или src. |
| username | Укажите имя пользователя для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_USERNAME. | |
| verify_ssl |
| Требуется ли проверка SSL-сертификатов сервера API. Также может быть задан через переменную среды K8S_AUTH_VERIFY_SSL. |
Примечания
Примечание
- Клиент OpenShift Python оборачивает клиент K8s Python, предоставляя полный доступ ко всем API и моделям, доступным на обеих платформах. Для получения подробностей о версии API и дополнительной информации посетите https://github.com/openshift/openshift-restclient-python
Примеры
- name: Create a k8s namespace
k8s_raw:
name: testing
api_version: v1
kind: Namespace
state: present
- name: Create a Service object from an inline definition
k8s_raw:
state: present
definition:
apiVersion: v1
kind: Service
metadata:
name: web
namespace: testing
labels:
app: galaxy
service: web
spec:
selector:
app: galaxy
service: web
ports:
- protocol: TCP
targetPort: 8000
name: port-8000-tcp
port: 8000
- name: Create a Service object by reading the definition from a file
k8s_raw:
state: present
src: /testing/service.yml
- name: Get an existing Service object
k8s_raw:
api_version: v1
kind: Service
name: web
namespace: testing
register: web_service
- name: Get a list of all service objects
k8s_raw:
api_version: v1
kind: ServiceList
namespace: testing
register: service_list
- name: Remove an existing Service object
k8s_raw:
state: absent
api_version: v1
kind: Service
namespace: testing
name: web
# Passing the object definition from a file
- name: Create a Deployment by reading the definition from a local file
k8s_raw:
state: present
src: /testing/deployment.yml
- name: Read definition file from the Ansible controller file system
k8s_raw:
state: present
definition: "{{ lookup('file', '/testing/deployment.yml') | from_yaml }}"
- name: Read definition file from the Ansible controller file system after Jinja templating
k8s_raw:
state: present
definition: "{{ lookup('template', '/testing/deployment.yml') | from_yaml }}"
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие — это поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| result сложный | успешно | Созданный, изменённый или, иначе, присутствующий объект. Будет пустым в случае удаления. | |
| status сложный | успешно | Текущие подробности состояния объекта. | |
| kind строка | успешно | Представляет REST-ресурс, который представляет этот объект. | |
| items список | при ресурсе — список | Возвращается только тогда, когда kind — ресурс типа Список. Содержит набор объектов. | |
| spec сложный | успешно | Конкретные атрибуты объекта. Будут различаться в зависимости от api_version и kind. | |
| api_version строка | успешно | Версионированная схема этого представления объекта. | |
| metadata сложный | успешно | Стандартные метаданные объекта. Включает имя, пространство имён, аннотации, метки и т.д. | |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется обратной совместимости.
Автор
- Крис Хаусенект (@chouseknecht)
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете редактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/k8s_raw_module.html