Spec-Zone.ru › Ansible

kubernetes.core.k8s поиск – Запрос к API K8s

Примечание

Этот плагин поиска входит в коллекцию kubernetes.core (версия 3.2.0).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install kubernetes.core. Для использования этого плагина поиска потребуются дополнительные требования, см. Требования для подробностей.

Чтобы использовать его в книге задач, укажите: kubernetes.core.k8s.

  • Описание
  • Требования
  • Параметры ключевых слов
  • Примечания
  • Примеры
  • Возвращаемое значение

Описание

  • Использует клиент Python Kubernetes для извлечения определенного объекта по имени, всех соответствующих объектов в пространстве имен или всех соответствующих объектов для всех пространств имен, а также информации о кластере.
  • Обеспечивает доступ ко всему спектру API K8s.
  • Поддерживает аутентификацию через конфигурационный файл, сертификаты, пароль или токен.

Требования

Ниже перечислены требования, необходимые на локальном узле контроллера, на котором выполняется этот поиск.

  • python >= 3.9
  • kubernetes >= 24.2.0
  • PyYAML >= 3.11
END_OF_DOCUMENT_MARKER

Ключевые параметры

Здесь описываются ключевые параметры поиска. Это значения key1=value1, key2=value2 и так далее в следующих примерах: lookup('kubernetes.core.k8s', key1=value1, key2=value2, ...) и query('kubernetes.core.k8s', key1=value1, key2=value2, ...)

Параметр

Комментарии

api_key

string

Токен, используемый для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_API_KEY.

api_version

string

Используется для указания версии API. Если предоставлено определение ресурса, apiVersion из определения ресурса переопределит этот параметр.

Значение по умолчанию: "v1"

ca_cert

aliases: ssl_ca_cert

string

Путь к сертификату CA, используемому для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_SSL_CA_CERT.

client_cert

aliases: cert_file

string

Путь к сертификату, используемому для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_CERT_FILE.

client_key

aliases: key_file

string

Путь к файлу ключа, используемому для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_KEY_FILE.

cluster_info

string

Используется для указания типа информации о кластере, которую вы пытаетесь получить. Будет иметь приоритет над всеми другими параметрами.

context

string

Имя контекста, найденного в конфигурационном файле. Также может быть указан через переменную среды K8S_AUTH_CONTEXT.

field_selector

string

Конкретные поля, по которым нужно выполнить запрос. Игнорируется, если предоставлено имя ресурса.

host

string

Указывает URL для доступа к API. Также может быть указан через переменную среды K8S_AUTH_HOST.

kind

string / required

Используется для указания модели объекта. Если предоставлено определение ресурса, kind из определения ресурса переопределит этот параметр.

kubeconfig

string

Путь к существующему конфигурационному файлу Kubernetes. Если не указан, и другие параметры подключения не предоставлены, клиент Kubernetes попытается загрузить конфигурационный файл по умолчанию из ~/.kube/config. Также может быть указан через переменную среды K8S_AUTH_KUBECONFIG.

label_selector

string

Дополнительные метки для включения в запрос. Игнорируется, если предоставлено имя ресурса.

namespace

string

Ограничивает возвращаемые объекты определенным пространством имен. Если предоставлено определение ресурса, значение metadata.namespace из определения ресурса переопределит этот параметр.

password

string

Указывает пароль для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_PASSWORD.

resource_definition

string

Предоставляет YAML-конфигурацию для объекта. ПРИМЕЧАНИЕ: kind, api_version, resource_name и namespace будут переписаны соответствующими значениями, найденными в предоставленном определении ресурса.

resource_name

string

Извлекает определенный объект по имени. Если предоставлено определение ресурса, значение metadata.name из определения ресурса переопределит этот параметр.

src

string

Указывает путь к файлу, содержащему допустимое YAML-описание объекта. Взаимоисключающий параметр с resource_definition. ПРИМЕЧАНИЕ: kind, api_version, resource_name и namespace будут переписаны соответствующими значениями, найденными в конфигурации, прочитанной из файла src.

Читает из локальной файловой системы. Чтобы читать из файловой системы контроллера Ansible, используйте плагин поиска файлов или плагин поиска шаблонов в сочетании с фильтром from_yaml и передайте результат в resource_definition. См. Примеры ниже.

username

string

Указывает имя пользователя для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_USERNAME.

validate_certs

aliases: verify_ssl

boolean

Проверять ли SSL-сертификаты сервера API. Также может быть указан через переменную среды K8S_AUTH_VERIFY_SSL.

Варианты:

  • false
  • true

Примечания

Примечание

  • При выполнении запроса, пожалуйста, используйте формат query или lookup с wantlist=True для обеспечения более простого и согласованного интерфейса. Для получения дополнительной информации см. https://docs.ansible.com/ansible/latest/plugins/lookup.html#forcing-lookups-to-return-lists-query-and-wantlist-true.

Примеры

- name: Fetch a list of namespaces
  set_fact:
    projects: "{{ query('kubernetes.core.k8s', api_version='v1', kind='Namespace') }}"

- name: Fetch all deployments
  set_fact:
    deployments: "{{ query('kubernetes.core.k8s', kind='Deployment') }}"

- name: Fetch all deployments in a namespace
  set_fact:
    deployments: "{{ query('kubernetes.core.k8s', kind='Deployment', namespace='testing') }}"

- name: Fetch a specific deployment by name
  set_fact:
    deployments: "{{ query('kubernetes.core.k8s', kind='Deployment', namespace='testing', resource_name='elastic') }}"

- name: Fetch with label selector
  set_fact:
    service: "{{ query('kubernetes.core.k8s', kind='Service', label_selector='app=galaxy') }}"

# Use parameters from a YAML config

- name: Load config from the Ansible controller filesystem
  set_fact:
    config: "{{ lookup('file', 'service.yml') | from_yaml }}"

- name: Using the config (loaded from a file in prior task), fetch the latest version of the object
  set_fact:
    service: "{{ query('kubernetes.core.k8s', resource_definition=config) }}"

- name: Use a config from the local filesystem
  set_fact:
    service: "{{ query('kubernetes.core.k8s', src='service.yml') }}"

Возвращаемое значение

Ключ

Описание

Возвращаемое значение

список / элементы=словарь

Одна или несколько определений объектов, возвращённых из API.

Возвращено: успешно

Пример: [{"apiVersion": "v1", "data": {"key1": "val1"}, "kind": "ConfigMap", "metadata": {"creationTimestamp": "2022-03-04T13:59:49Z", "name": "my-config-map", "namespace": "default", "resourceVersion": "418", "uid": "5714b011-d090-4eac-8272-a0ea82ec0abd"}}]

Авторы

  • Крис Хаусенект (@chouseknecht)
  • Фабиан фон Фейлитцш (@fabianvf)

Подсказка

Записи конфигурации для каждого типа записи имеют порядок приоритета от низкого к высокому. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше.

Ссылки на коллекции

  • Система отслеживания ошибок
  • Репозиторий (источники)

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/kubernetes/core/k8s_lookup.html

Spec-Zone.ru

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