k8s – Управление объектами Kubernetes (K8s)
Новое в версии 2.6.
Обзор
- Используйте клиент OpenShift Python для выполнения операций CRUD над объектами K8s.
- Передавайте определение объекта из файла или встройте его. Смотрите примеры для чтения файлов и использования шаблонов Jinja.
- Доступ ко всему спектру API K8s.
- Используйте модуль k8s_facts для получения списка элементов об объекте типа
kind. - Авторизуйтесь с помощью файла конфигурации, сертификатов, пароля или токена.
- Поддерживает режим проверки.
Псевдонимы: k8s_raw, openshift_raw
Требования
Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.7
- openshift >= 0.6
- PyYAML >= 3.11
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| api_key - | Токен, используемый для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_API_KEY. | |
| api_version - | По умолчанию: "v1" | Используется для указания версии API. Используется для создания, удаления или поиска объекта без предоставления полного определения ресурса. Используется в сочетании с kind, name и namespace для идентификации конкретного объекта. Если указано resource definition, apiVersion из resource_definition переопределит этот параметр. Псевдонимы: api, version |
| cert_file - | Путь к сертификату, используемому для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_CERT_FILE. | |
| context - | Имя контекста, найденного в файле конфигурации. Также может быть указан через переменную среды K8S_AUTH_CONTEXT. | |
| force boolean |
| Если установлено значение True, и state равно present, существующий объект будет заменен. |
| host - | Укажите URL для доступа к API. Также может быть указан через переменную среды K8S_AUTH_HOST. | |
| key_file - | Путь к файлу ключа, используемому для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_HOST. | |
| kind - | Используется для указания модели объекта. Используется для создания, удаления или поиска объекта без предоставления полного определения ресурса. Используется в сочетании с api_version, name и namespace для идентификации конкретного объекта. Если указано resource definition, kind из resource_definition переопределит этот параметр. | |
| kubeconfig - | Путь к существующему файлу конфигурации Kubernetes. Если не указано и не указаны другие параметры подключения, клиент openshift попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.json. Также может быть указан через переменную среды K8S_AUTH_KUBECONFIG. | |
| merge_type list добавлено в 2.7 |
| Указывает, нужно ли переопределить подход к объединению патчей по умолчанию. Например, определения пользовательских ресурсов обычно не обновляются стандартным стратегическим объединением. Вы можете использовать merge если видите "формат стратегического объединения патча не поддерживается"Требует openshift >= 0.6.2 Если задано более одного merge_type, merge_types будут пробоваться в указанном порядке Если openshift >= 0.6.2, значение по умолчанию — ['strategic-merge', 'merge'], что идеально подходит для использования одних и тех же параметров для типов ресурсов, которые объединяют пользовательские ресурсы и встроенные ресурсы. Для openshift < 0.6.2 значение по умолчанию просто strategic-merge. |
| name - | Используется для указания имени объекта. Используется для создания, удаления или поиска объекта без предоставления полного определения ресурса. Используется в сочетании с api_version, kind и namespace для идентификации конкретного объекта. Если указано resource definition, значение metadata.name из resource_definition переопределит этот параметр. | |
| namespace - | Используется для указания пространства имен объекта. Полезно при создании, удалении или поиске объекта без предоставления полного определения ресурса. Используется в сочетании с api_version, kind и name для идентификации конкретного объекта. Если указано resource definition, значение 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 boolean |
| Указать, необходимо ли проверять SSL-сертификаты сервера API. Также может быть указан через переменную среды K8S_AUTH_VERIFY_SSL. |
Примечания
Примечание
- Клиент OpenShift Python оборачивает клиент K8s Python, предоставляя полный доступ ко всем API и моделям, доступным на обеих платформах. Для получения подробной информации о версиях API и дополнительной информации посетите https://github.com/openshift/openshift-restclient-python
- Чтобы избежать ошибок проверки SSL-сертификатов, когда
verify_sslравно True, необходимо предоставить полную цепочку сертификатов сервера API с помощьюssl_ca_certили в файле kubeconfig.
Примеры
- name: Create a k8s namespace
k8s:
name: testing
api_version: v1
kind: Namespace
state: present
- name: Create a Service object from an inline definition
k8s:
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:
state: present
src: /testing/service.yml
- name: Remove an existing Service object
k8s:
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:
state: present
src: /testing/deployment.yml
- name: Read definition file from the Ansible controller file system
k8s:
state: present
definition: "{{ lookup('file', '/testing/deployment.yml') }}"
- name: Read definition file from the Ansible controller file system after Jinja templating
k8s:
state: present
definition: "{{ lookup('template', '/testing/deployment.yml') }}"
Возвращаемые значения
Общие значения возвращаемых данных документированы здесь, следующие — поля, уникальные для этого модуля:
| Ключ | Возвращается при | Описание | |
|---|---|---|---|
| result complex | успехе | Созданный, изменённый или существующий объект. Будет пустым в случае удаления. | |
| api_version string | успехе | Версионированная схема этого представления объекта. | |
| items list | при resource_definition или src содержат список объектов | Возвращается только при передаче нескольких yaml-документов в src или resource_definition | |
| kind string | успехе | Представляет REST-ресурс, который представляет этот объект. | |
| metadata complex | успехе | Стандартные метаданные объекта. Включают имя, пространство имён, аннотации, метки и т. д. | |
| spec complex | успехе | Конкретные атрибуты объекта. Будут различаться в зависимости от api_version и kind. | |
| status complex | успехе | Текущие подробности состояния объекта. | |
Состояние
- Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Chris Houseknecht (@chouseknecht)
- Fabian von Feilitzsch (@fabianvf)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/k8s_module.html