Spec-Zone.ru › Ansible

kubernetes.core.k8s lookup – запрос к API K8s

Примечание

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

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

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

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

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

Краткое описание

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

Требования

Следующие требования необходимы на локальном управляющем узле, на котором выполняется этот плагин поиска.

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

Параметры ключевых слов

Здесь описаны параметры ключевых слов плагина поиска. В приведённых ниже примерах это значения 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 из resource_definition переопределит этот параметр.

По умолчанию: "v1"

ca_cert

псевдонимы: ssl_ca_cert

string

Путь к сертификату центра сертификации, используемому для аутентификации в API. Также можно задать с помощью переменной окружения K8S_AUTH_SSL_CA_CERT.

client_cert

псевдонимы: cert_file

string

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

client_key

псевдонимы: key_file

string

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

cluster_info

string

Указывает тип сведений о кластере, которые необходимо получить. Имеет приоритет над всеми остальными параметрами.

context

string

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

field_selector

string

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

host

string

URL для доступа к API. Также можно задать с помощью переменной окружения K8S_AUTH_HOST.

kind

string / обязательный

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

kubeconfig

string

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

label_selector

string

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

namespace

string

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

no_proxy

string

Список разделённых запятыми узлов, доменов, IP-адресов или CIDR, для которых не следует использовать прокси. Также можно задать с помощью переменной окружения K8S_AUTH_NO_PROXY.

Обратите внимание: этот модуль не считывает стандартные настройки прокси из окружения (например, NO_PROXY).

Для этой функции требуется kubernetes>=19.15.0. При версии библиотеки kubernetes ниже 19.15.0 возникает ошибка, даже если no_proxy задан правильно.

password

string

Пароль для аутентификации в API. Также можно задать с помощью переменной окружения K8S_AUTH_PASSWORD.

proxy

string

URL HTTP-прокси, используемого для подключения. Также можно задать с помощью переменной окружения K8S_AUTH_PROXY.

Обратите внимание: этот модуль не считывает стандартные настройки прокси из окружения (например, HTTP_PROXY).

proxy_headers

dictionary

Заголовок, используемый для HTTP-прокси.

Документация доступна по ссылке https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html?highlight=proxy_headers#urllib3.util.make_headers.

basic_auth

string

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

Также можно задать с помощью переменной окружения K8S_AUTH_PROXY_HEADERS_BASIC_AUTH.

proxy_basic_auth

string

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

Также можно задать с помощью переменной окружения K8S_AUTH_PROXY_HEADERS_PROXY_BASIC_AUTH.

user_agent

string

Строка, задающая нужный user-agent, например foo/1.0.

Также можно задать с помощью переменной окружения K8S_AUTH_PROXY_HEADERS_USER_AGENT.

resource_definition

string

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

resource_name

string

Получить объект по имени. Если задано описание ресурса, значение metadata.name из resource_definition переопределит этот параметр.

src

string

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

Файл считывается из локальной файловой системы. Чтобы прочитать файл из файловой системы управляющего узла Ansible, используйте плагин поиска file или template в сочетании с фильтром from_yaml и передайте результат в resource_definition. См. примеры ниже.

username

string

Имя пользователя для аутентификации в API. Также можно задать с помощью переменной окружения K8S_AUTH_USERNAME.

validate_certs

псевдонимы: 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') }}"

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

Ключ

Описание

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

list / элементы=dictionary

Одно или несколько описаний объектов, возвращённых 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"}}]

Авторы

  • Chris Houseknecht (@chouseknecht)
  • Fabian von Feilitzsch (@fabianvf)

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

  • Отслеживание проблем
  • Репозиторий (исходный код)

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

Spec-Zone.ru

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