community.okd.openshift_adm_migrate_template_instances 模块 – 更新 TemplateInstances 以指向最新的 group-version-kinds

注意

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

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

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

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

community.okd 2.2.0 中的新增功能

概要

  • 更新 TemplateInstances 以指向最新的 group-version-kinds。

  • 类似于 oc adm migrate template-instances

需求

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

  • python >= 3.6

  • kubernetes >= 12.0.0

参数

参数

注释

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 版本中添加。

namespace

字符串

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

如果没有指定命名空间,则迁移所有命名空间中的对象。

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

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

默认为 false。

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

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

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

布尔值

是否等待某些资源种类达到所需状态。

默认情况下,一旦 Kubernetes 接收到请求,模块就会退出。

针对 state=presentDeploymentDaemonSetPod,以及针对所有资源种类的 state=absent 实现。

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

选项

  • false ← (默认)

  • true

wait_condition

字典

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

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

reason

字符串

所需条件中 reason 字段的值

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

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

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

status

字符串

所需条件中 status 字段的值。

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

选项

  • "True" ← (默认)

  • "False"

  • "Unknown"

type

字符串

要等待的条件类型。

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

如果您指定 wait_condition,则需要此选项。

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

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

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

wait_sleep

整数

检查之间休眠的秒数。

默认值: 5

wait_timeout

整数

等待资源达到所需状态的秒数。

如果未设置 wait,则忽略。

默认值: 120

备注

注意

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

示例

- name: Migrate TemplateInstances in namespace=test
  community.okd.openshift_adm_migrate_template_instances:
    namespace: test
  register: _result

- name: Migrate TemplateInstances in all namespaces
  community.okd.openshift_adm_migrate_template_instances:
  register: _result

返回值

公共返回值已在此处记录 here,以下是此模块特有的字段

描述

result

列表 / 元素=字典

包含所有已迁移的 TemplateInstances 的列表。

返回:成功

示例: [{"apiVersion": "template.openshift.io/v1", "kind": "TemplateInstance", "metadata": {"creationTimestamp": "2021-11-10T11:12:09Z", "finalizers": ["template.openshift.io/finalizer"], "managedFields": [{"apiVersion": "template.openshift.io/v1", "fieldsType": "FieldsV1", "fieldsV1": {"f:spec": {"f:template": {"f:metadata": {"f:name": {}}, "f:objects": {}, "f:parameters": {}}}}, "manager": "kubectl-create", "operation": "Update", "time": "2021-11-10T11:12:09Z"}, {"apiVersion": "template.openshift.io/v1", "fieldsType": "FieldsV1", "fieldsV1": {"f:metadata": {"f:finalizers": {".": {}, "v:\"template.openshift.io/finalizer\"": {}}}, "f:status": {"f:conditions": {}}}, "manager": "openshift-controller-manager", "operation": "Update", "time": "2021-11-10T11:12:09Z"}, {"apiVersion": "template.openshift.io/v1", "fieldsType": "FieldsV1", "fieldsV1": {"f:status": {"f:objects": {}}}, "manager": "OpenAPI-Generator", "operation": "Update", "time": "2021-11-10T11:12:33Z"}], "name": "demo", "namespace": "test", "resourceVersion": "545370", "uid": "09b795d7-7f07-4d94-bf0f-2150ee66f88d"}, "spec": {"requester": {"groups": ["system:masters", "system:authenticated"], "username": "system:admin"}, "template": {"metadata": {"creationTimestamp": null, "name": "template"}, "objects": [{"apiVersion": "v1", "kind": "Secret", "metadata": {"labels": {"foo": "bar"}, "name": "secret"}}, {"apiVersion": "apps/v1", "kind": "Deployment", "metadata": {"name": "deployment"}, "spec": {"replicas": 0, "selector": {"matchLabels": {"key": "value"}}, "template": {"metadata": {"labels": {"key": "value"}}, "spec": {"containers": [{"image": "k8s.gcr.io/e2e-test-images/agnhost:2.32", "name": "hello-openshift"}]}}}}, {"apiVersion": "v1", "kind": "Route", "metadata": {"name": "route"}, "spec": {"to": {"name": "foo"}}}], "parameters": [{"name": "NAME", "value": "${NAME}"}]}}, "status": {"conditions": [{"lastTransitionTime": "2021-11-10T11:12:09Z", "message": "", "reason": "Created", "status": "True", "type": "Ready"}], "objects": [{"ref": {"apiVersion": "v1", "kind": "Secret", "name": "secret", "namespace": "test", "uid": "33fad364-6d47-4f9c-9e51-92cba5602a57"}}, {"ref": {"apiVersion": "apps/v1", "kind": "Deployment", "name": "deployment", "namespace": "test", "uid": "3b527f88-42a1-4811-9e2f-baad4e4d8807"}}, {"ref": {"apiVersion": "route.openshift.io/v1.Route", "kind": "Route", "name": "route", "namespace": "test", "uid": "5b5411de-8769-4e27-ba52-6781630e4008"}}]}}, "..."]

作者

  • Alina Buzachis (@alinabuzachis)