Spec-Zone.ru › Ansible 2.7

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
    Варианты:
  • json
  • 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
Требует 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

Spec-Zone.ru

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