k8s - Управление объектами Kubernetes (K8s)
Новая версия с 2.6.
Обзор
- Используйте клиент OpenShift Python для выполнения операций CRUD над объектами K8s.
- Передавайте определение объекта из исходного файла или в строке. См. примеры чтения файлов и использования шаблонов Jinja.
- Доступ ко всему спектру API K8s.
- Авторизуйтесь с помощью файла конфигурации, сертификатов, пароля или токена.
- Поддерживает режим проверки.
Псевдонимы: 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 для идентификации конкретного объекта. Если предоставлено определение ресурса, apiVersion из resource_definition переопределит этот параметр. псевдонимы: api, version |
| cert_file | Путь к сертификату, используемому для аутентификации с API. Также может быть задан через переменную среды K8S_AUTH_CERT_FILE. | |
| context | Имя контекста, найденного в файле конфигурации. Также может быть задан через переменную среды K8S_AUTH_CONTEXT. | |
| force bool |
| Если установлено значение 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. псевдонимы: определение, inline | |
| 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 bool |
| Требовать или нет проверку 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:
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: Get an existing Service object
k8s:
api_version: v1
kind: Service
name: web
namespace: testing
register: web_service
- name: Get a list of all service objects
k8s:
api_version: v1
kind: ServiceList
namespace: testing
register: service_list
- 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') | from_yaml }}"
- name: Read definition file from the Ansible controller file system after Jinja templating
k8s:
state: present
definition: "{{ lookup('template', '/testing/deployment.yml') | from_yaml }}"
Возвращаемые значения
Общие возвращаемые значения описаны в разделе здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| result сложный | успех | Созданный, измененный или существующий объект. Будет пустым в случае удаления. | |
| api_version строка | успех | Версионированная схема данного представления объекта. | |
| kind строка | успех | Представляет REST-ресурс, который представляет данный объект. | |
| metadata сложный | успех | Стандартные метаданные объекта. Включает имя, пространство имен, аннотации, метки и т. д. | |
| spec сложный | успех | Специфические атрибуты объекта. Будут отличаться в зависимости от api_version и kind. | |
| status сложный | успех | Текущий статус деталей объекта. | |
| items список | при ресурсе списка | Возвращается только тогда, когда kind — это ресурс типа списка. Содержит набор объектов. | |
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Поддержка модулей и обслуживание для получения дополнительной информации.
Список других модулей, которые также поддерживаются сообществом 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.6/modules/k8s_module.html