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 переопределит этот параметр. По умолчанию: |
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. Варианты:
|
Примечания
Примечание
- При выполнении запросов используйте формат
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. Возвращается: при успешном выполнении Пример: |
Ссылки на коллекцию
© 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