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