community.okd.openshift_process 模块 – 处理 OpenShift 模板 openshift.io/v1 模板

注意

此模块是 community.okd 集合(版本 4.0.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.okd。您需要进一步的要求才能使用此模块,有关详细信息,请参阅要求

要在 playbook 中使用它,请指定:community.okd.openshift_process

community.okd 0.3.0 中的新功能

概要

  • 使用提供的模板处理指定的 OpenShift 模板。

  • 模板可以以内联方式提供,从文件提供,或通过集群中的名称和命名空间指定。

  • 类似于 `oc process`。

  • 有关 Template 资源本身的 CRUD 操作,请参阅 community.okd.k8s 模块。

要求

以下是在执行此模块的主机上所需的要求。

  • python >= 3.6

  • kubernetes >= 12.0.0

  • PyYAML >= 3.11

参数

参数

注释

api_key

字符串

用于向 API 进行身份验证的令牌。也可以通过 K8S_AUTH_API_KEY 环境变量指定。

ca_cert

别名:ssl_ca_cert

路径

用于向 API 进行身份验证的 CA 证书的路径。必须提供完整的证书链以避免证书验证错误。也可以通过 K8S_AUTH_SSL_CA_CERT 环境变量指定。

client_cert

别名:cert_file

路径

用于向 API 进行身份验证的证书的路径。也可以通过 K8S_AUTH_CERT_FILE 环境变量指定。

client_key

别名:key_file

路径

用于向 API 进行身份验证的密钥文件的路径。也可以通过 K8S_AUTH_KEY_FILE 环境变量指定。

context

字符串

配置文件中找到的上下文的名称。也可以通过 K8S_AUTH_CONTEXT 环境变量指定。

host

字符串

提供用于访问 API 的 URL。也可以通过 K8S_AUTH_HOST 环境变量指定。

impersonate_groups

列表 / 元素=字符串

在 kubernetes.core 2.3.0 中添加

要模拟操作的组。

也可以通过 K8S_AUTH_IMPERSONATE_GROUPS 环境变量指定。例如:Group1,Group2

impersonate_user

字符串

在 kubernetes.core 2.3.0 中添加

要模拟操作的用户名。

也可以通过 K8S_AUTH_IMPERSONATE_USER 环境变量指定。

kubeconfig

任意类型

现有 Kubernetes 配置文件的路径。如果未提供,并且未提供其他连接选项,则 Kubernetes 客户端将尝试从 ~/.kube/config 加载默认配置文件。也可以通过 K8S_AUTH_KUBECONFIG 环境变量指定。

可以使用分隔符“;”用于 Windows 平台或“:”用于其他平台提供多个 Kubernetes 配置文件。

Kubernetes 配置可以作为字典提供。此功能需要 Python Kubernetes 客户端版本 >= 17.17.0。在版本 2.2.0 中添加。

name

字符串

要处理的模板的名称。

模板必须存在于集群中。

提供时,需要 namespace

resource_definitionsrc 互斥

namespace

字符串

可以在其中找到模板的命名空间。

namespace_target

字符串

应该在其中创建、更新或删除资源的命名空间。

仅当存在或缺少 state 时才使用。

no_proxy

字符串

在 kubernetes.core 2.3.0 中添加

不应通过代理的以逗号分隔的主机/域名/IP/CIDR 列表。也可以通过 K8S_AUTH_NO_PROXY 环境变量指定。

请注意,此模块不会从环境中选取典型的代理设置(例如 NO_PROXY)。

此功能需要 kubernetes>=19.15.0。当 kubernetes 库小于 19.15.0 时,即使 no_proxy 设置正确也会失败。

示例值为“localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16”

parameter_file

字符串

包含模板参数值的文件路径,用于覆盖/设置模板中的值。

对应于 oc process 的 `–param-file` 参数。

parameters

字典

一组键:值对,将用于设置/覆盖模板中的值。

对应于 oc process 的 `–param` 参数。

password

字符串

提供用于向 API 进行身份验证的密码。也可以通过 K8S_AUTH_PASSWORD 环境变量指定。

请阅读 username 选项的描述,以了解何时适用此选项。

persist_config

boolean

是否保存 kube config 刷新令牌。也可以通过 K8S_AUTH_PERSIST_CONFIG 环境变量指定。

当 k8s 上下文使用带有刷新令牌的用户凭据(如 oidc 或 gke/gcloud 身份验证)时,令牌会被 k8s Python 客户端库刷新,但默认情况下不会保存。因此,旧的刷新令牌可能会过期,导致下次身份验证失败。将此标志设置为 true 将告诉 k8s Python 客户端将新的刷新令牌保存到 kube config 文件中。

默认为 false。

请注意,当前版本的 k8s Python 客户端库尚不支持将此标志设置为 True。

此 k8s Python 库的修复程序在此处: https://github.com/kubernetes-client/python-base/pull/169

选项

  • false

  • true

proxy

字符串

用于连接的 HTTP 代理的 URL。也可以通过 K8S_AUTH_PROXY 环境变量指定。

请注意,此模块不会从环境(例如 HTTP_PROXY)中获取典型的代理设置。

proxy_headers

字典

在 kubernetes.core 2.0.0 中添加

basic_auth

字符串

用于基本身份验证标头的冒号分隔的 username:password。

也可以通过 K8S_AUTH_PROXY_HEADERS_BASIC_AUTH 环境指定。

proxy_basic_auth

字符串

用于代理基本身份验证标头的冒号分隔的 username:password。

也可以通过 K8S_AUTH_PROXY_HEADERS_PROXY_BASIC_AUTH 环境指定。

user_agent

字符串

表示您想要的 user-agent 的字符串,例如 foo/1.0。

也可以通过 K8S_AUTH_PROXY_HEADERS_USER_AGENT 环境指定。

resource_definition

别名: definition, inline

字符串

在创建或更新对象时,提供有效的 YAML 定义(可以是字符串、列表或字典)。

注意:kindapi_versionnamenamespace 将被提供的 resource_definition 中找到的相应值覆盖。

src

路径

提供包含要创建或更新的对象或对象的有效 YAML 定义的文件的路径。与 resource_definition 互斥。注意:kindapi_versionnamenamespace 将被从 src 文件读取的配置中找到的相应值覆盖。

从本地文件系统读取。要从 Ansible 控制器的文件系统(包括保管库文件)读取,请使用文件查找插件或模板查找插件,并结合 from_yaml 过滤器,并将结果传递给 resource_definition。请参见下面的示例。

可用于创建资源的清单文件的 URL。在 2.4.0 版本中添加。

kubernetes.core.k8s 模块中与 template 互斥。

state

字符串

确定如何处理渲染的模板。

状态 rendered 将根据提供的参数渲染模板,并在 resources 字段中返回渲染的对象。这些对象可以在以后的任务中引用。

状态 present 将导致在渲染的模板中的资源如果尚不存在则被创建,如果存在则被修补。

状态 absent 将删除渲染的模板中的资源。

选项

  • "absent"

  • "present"

  • "rendered" ←(默认)

username

字符串

提供用于向 API 进行身份验证的用户名。也可以通过 K8S_AUTH_USERNAME 环境变量指定。

请注意,这仅适用于配置为使用 HTTP 基本身份验证的集群。如果您的集群具有不同的身份验证形式(例如 OpenShift 中的 OAuth2),则此选项将无法按预期工作,您应该查看 community.okd.k8s_auth 模块,因为它可能会满足您的需求。

validate_certs

别名: verify_ssl

boolean

是否验证 API 服务器的 SSL 证书。也可以通过 K8S_AUTH_VERIFY_SSL 环境变量指定。

选项

  • false

  • true

wait

boolean

是否等待某些资源类型进入所需状态。

默认情况下,模块会在 Kubernetes 收到请求后退出。

state=presentDeploymentDaemonSetPod 以及为 state=absent 的所有资源类型实现。

对于没有实现的资源类型,除非设置了 wait_condition,否则 wait 会立即返回。

选项

  • false ←(默认)

  • true

wait_condition

字典

指定要等待的状态的自定义条件。

如果未设置 wait 或设置为 False,则忽略。

reason

字符串

您所需条件中 reason 字段的值

例如,如果 Deployment 暂停,则 Progressing type 将具有 DeploymentPaused 的 reason。

条件中可能的 reason 特定于 Kubernetes 中的每种资源类型。

请参阅给定资源的 status 字段的 API 文档,以查看可能的选项。

status

字符串

您所需条件中 status 字段的值。

例如,如果 Deployment 暂停,则 Progressing type 将具有 Unknown 的 status。

选项

  • "True" ←(默认)

  • "False"

  • "Unknown"

type

字符串

要等待的条件类型。

例如,Pod 资源将设置 Ready 条件(以及其他条件)。

如果您要指定 wait_condition,则为必填项。

如果留空,则将忽略 wait_condition 字段。

条件的可能类型特定于 Kubernetes 中的每种资源类型。

请参阅给定资源的 status 字段的 API 文档,以查看可能的选项。

wait_sleep

integer

检查之间休眠的秒数。

默认值: 5

wait_timeout

integer

等待资源进入所需状态的秒数。

如果未设置 wait,则忽略。

默认值: 120

注意事项

注意

  • 为了避免当 validate_certsTrue 时出现 SSL 证书验证错误,必须通过 ca_cert 或在 kubeconfig 文件中提供 API 服务器的完整证书链。

示例

- name: Process a template in the cluster
  community.okd.openshift_process:
    name: nginx-example
    namespace: openshift # only needed if using a template already on the server
    parameters:
      NAMESPACE: openshift
      NAME: test123
    state: rendered
  register: result

- name: Create the rendered resources using apply
  community.okd.k8s:
    namespace: default
    definition: '{{ item }}'
    wait: true
    apply: true
  loop: '{{ result.resources }}'

- name: Process a template with parameters from an env file and create the resources
  community.okd.openshift_process:
    name: nginx-example
    namespace: openshift
    namespace_target: default
    parameter_file: 'files/nginx.env'
    state: present
    wait: true

- name: Process a local template and create the resources
  community.okd.openshift_process:
    src: files/example-template.yaml
    parameter_file: files/example.env
    namespace_target: default
    state: present

- name: Process a local template, delete the resources, and wait for them to terminate
  community.okd.openshift_process:
    src: files/example-template.yaml
    parameter_file: files/example.env
    namespace_target: default
    state: absent
    wait: true

返回值

通用返回值记录在此处,以下是此模块独有的字段

描述

resources

复杂

模板中定义的渲染资源

返回:当状态为渲染时成功

apiVersion

字符串

此对象表示的版本化模式。

返回:成功

kind

字符串

表示此对象表示的 REST 资源。

返回:成功

metadata

复杂

标准对象元数据。包括名称、命名空间、注释、标签等。

返回:成功

name

字符串

资源的名称

返回:成功

namespace

字符串

资源的命名空间

返回:成功

spec

字典

对象的特定属性。将根据 api_versionkind 而变化。

返回:成功

status

字典

对象的当前状态详细信息。

返回:成功

conditions

复杂

对象的 status 条件数组。不保证存在

返回:成功

result

复杂

已创建、已修补或以其他方式存在的对象。在删除的情况下将为空。

返回:当状态为 present 或 absent 时成功

apiVersion

字符串

此对象表示的版本化模式。

返回:成功

duration

integer

任务的经过时间(以秒为单位)

返回:wait 为 true 时

示例: 48

items

列表 / 元素=字符串

仅当将多个 YAML 文档传递给 src 或 resource_definition 时返回

返回:当 resource_definition 或 src 包含对象列表时

kind

字符串

表示此对象表示的 REST 资源。

返回:成功

metadata

复杂

标准对象元数据。包括名称、命名空间、注释、标签等。

返回:成功

name

字符串

资源的名称

返回:成功

namespace

字符串

资源的命名空间

返回:成功

spec

字典

对象的特定属性。将根据 api_versionkind 而变化。

返回:成功

status

复杂

对象的当前状态详细信息。

返回:成功

conditions

复杂

对象的 status 条件数组。不保证存在

返回:成功

作者

  • Fabian von Feilitzsch (@fabianvf)