community.okd.openshift_build 模块 – 启动新构建或取消正在运行、挂起或新的构建。

注意

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

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

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

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

community.okd 2.3.0 中的新增功能

概要

  • 此模块从提供的构建配置或构建名称启动新构建。

  • 此模块还可以通过请求优雅地关闭构建来取消新的、挂起或正在运行的构建。请求构建和构建终止之间可能会有延迟。

  • 当当前构建被取消时,这也可以重新启动新构建。

  • 类似于 oc cancel-buildoc start-build

要求

执行此模块的主机需要以下要求。

  • python >= 3.6

  • kubernetes >= 12.0.0

参数

参数

注释

api_key

字符串

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

build_args

列表 / elements=字典

指定在构建期间传递给 Docker 的键值对列表。

name

字符串 / 必需

docker 构建参数名称。

value

字符串 / 必需

docker 构建参数值。

build_config_name

字符串

指定将从中运行新构建的构建配置的名称。

与参数 build_name 互斥。

build_name

字符串

指定应重新运行的构建的名称。

与参数 build_config_name 互斥。

build_phases

列表 / elements=字符串

要取消构建的状态列表。

state=started 时忽略。

选项

  • "New"

  • "Pending"

  • "Running"

默认值: []

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 环境变量指定。

commit

字符串

指定构建应使用的源代码提交标识符;需要基于 Git 存储库的构建。

context

字符串

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

env_vars

列表 / elements=字典

指定要为构建容器设置的环境变量的键值对列表。

name

字符串 / 必需

环境变量名称。

value

字符串 / 必需

环境变量值。

host

字符串

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

impersonate_groups

列表 / elements=字符串

在 kubernetes.core 2.3.0 中添加

要为操作模拟的组。

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

impersonate_user

字符串

在 kubernetes.core 2.3.0 中添加

要为操作模拟的用户名。

也可以通过 K8S_AUTH_IMPERSONATE_USER 环境指定。

incremental

布尔值

覆盖源策略构建中的增量设置,如果未指定则忽略。

选项

  • false

  • true

kubeconfig

任何

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

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

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

namespace

字符串 / 必需

指定构建或构建配置的命名空间。

no_cache

布尔值

覆盖 docker 策略构建中的 noCache 设置,如果未指定则忽略。

选项

  • false

  • true

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”

password

字符串

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

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

persist_config

布尔值

是否保存 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

字符串

用于基本身份验证标头的以冒号分隔的用户名:密码。

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

proxy_basic_auth

字符串

用于代理基本身份验证标头的以冒号分隔的用户名:密码。

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

user_agent

字符串

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

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

state

字符串

确定是否应启动、取消或重新启动构建。

当设置为 restarted 时,将在取消当前构建后创建新的构建。

选项

  • "started" ← (默认)

  • "cancelled"

  • "restarted"

username

字符串

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

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

validate_certs

别名:verify_ssl

布尔值

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

选项

  • false

  • true

wait

布尔值

state=started 时,指定是否等待构建完成,如果构建失败,则以非零返回码退出。

当 *state=cancelled* 时,指定是否等待构建阶段被取消。

选项

  • false ← (默认)

  • true

wait_sleep

整数

检查之间休眠的秒数。

如果 wait=false 则忽略。

默认值: 5

wait_timeout

整数

等待构建完成的秒数。

如果 wait=false 则忽略。

默认值: 120

注释

注意

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

示例

# Starts build from build config default/hello-world
- name: Starts build from build config
  community.okd.openshift_build:
    namespace: default
    build_config_name: hello-world

# Starts build from a previous build "default/hello-world-1"
- name: Starts build from a previous build
  community.okd.openshift_build:
    namespace: default
    build_name: hello-world-1

# Cancel the build with the given name
- name: Cancel build from default namespace
  community.okd.openshift_build:
    namespace: "default"
    build_name: ruby-build-1
    state: cancelled

# Cancel the named build and create a new one with the same parameters
- name: Cancel build from default namespace and create a new one
  community.okd.openshift_build:
    namespace: "default"
    build_name: ruby-build-1
    state: restarted

# Cancel all builds created from 'ruby-build' build configuration that are in 'new' state
- name: Cancel build from default namespace and create a new one
  community.okd.openshift_build:
    namespace: "default"
    build_config_name: ruby-build
    build_phases:
      - New
    state: cancelled

返回值

常见的返回值记录在这里,以下是此模块特有的字段

描述

builds

复杂

已启动/取消的构建。

返回: 成功

api_version

字符串

此对象表示形式的版本化架构。

返回: 成功

kind

字符串

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

返回: 成功

metadata

字典

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

返回: 成功

spec

字典

构建的特定属性。

返回: 成功

status

字典

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

返回: 成功

作者

  • Aubin Bikouo (@abikouo)