kubernetes.core.k8s 查询 – 查询 K8s API
注意
此查找插件是 kubernetes.core 集合 (版本 5.0.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install kubernetes.core
。您需要其他要求才能使用此查找插件,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定:kubernetes.core.k8s
。
概要
使用 Kubernetes Python 客户端通过名称获取特定对象,获取命名空间内所有匹配的对象,或获取所有命名空间中所有匹配的对象,以及有关集群的信息。
提供对全部 K8s API 的访问。
支持通过配置文件、证书、密码或令牌进行身份验证。
要求
以下要求是在执行此查找的本地控制器节点上需要的。
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 进行身份验证的令牌。也可以通过 K8S_AUTH_API_KEY 环境变量指定。 |
|
用于指定 API 版本。如果提供 *资源定义*,则来自 *资源定义* 的 *apiVersion* 将覆盖此选项。 默认值: |
|
用于对 API 进行身份验证的 CA 证书的路径。也可以通过 K8S_AUTH_SSL_CA_CERT 环境变量指定。 |
|
用于对 API 进行身份验证的证书的路径。也可以通过 K8S_AUTH_CERT_FILE 环境变量指定。 |
|
用于对 API 进行身份验证的密钥文件的路径。也可以通过 K8S_AUTH_KEY_FILE 环境变量指定。 |
|
用于指定您尝试检索的集群信息类型。将优先于所有其他选项。 |
|
配置文件中找到的上下文名称。也可以通过 K8S_AUTH_CONTEXT 环境变量指定。 |
|
要查询的特定字段。提供 *资源名称* 时将被忽略。 |
|
提供用于访问 API 的 URL。也可以通过 K8S_AUTH_HOST 环境变量指定。 |
|
用于指定对象模型。如果提供 *资源定义*,则来自 *资源定义* 的 *kind* 将覆盖此选项。 |
|
现有 Kubernetes 配置文件的路径。如果没有提供,并且没有提供其他连接选项,则 Kubernetes 客户端将尝试从 *~/.kube/config* 加载默认配置文件。也可以通过 K8S_AUTH_KUBECONFIG 环境变量指定。 |
|
要包含在查询中的其他标签。提供 *资源名称* 时将被忽略。 |
|
将返回的对象限制在特定命名空间。如果提供 *资源定义*,则来自 *资源定义* 的 *metadata.namespace* 值将覆盖此选项。 |
|
提供用于对 API 进行身份验证的密码。也可以通过 K8S_AUTH_PASSWORD 环境变量指定。 |
|
提供对象的 YAML 配置。注意:*kind*、*api_version*、*resource_name* 和 *namespace* 将被从提供的 *resource_definition* 中找到的相应值覆盖。 |
|
按名称获取特定对象。如果提供 *资源定义*,则来自 *资源定义* 的 *metadata.name* 值将覆盖此选项。 |
|
提供包含对象的有效 YAML 定义的文件的路径。与 *resource_definition* 互斥。注意:*kind*、*api_version*、*resource_name* 和 *namespace* 将被从 *src* 文件中读取的配置中找到的相应值覆盖。 从本地文件系统读取。要从 Ansible 控制器的文件系统读取,请使用文件查找插件或模板查找插件,结合 from_yaml 过滤器,并将结果传递给 *resource_definition*。请参见下面的示例。 |
|
提供用于对 API 进行身份验证的用户名。也可以通过 K8S_AUTH_USERNAME 环境变量指定。 |
|
是否验证 API 服务器的 SSL 证书。也可以通过 K8S_AUTH_VERIFY_SSL 环境变量指定。 选项
|
备注
注意
查询时,请使用
query
或lookup
格式,并设置wantlist=True
,以提供更轻松、更一致的接口。更多详情,请参见 https://docs.ansible.org.cn/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 返回的一个或多个对象定义。 返回:成功 示例: |