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

当 k8s 上下文使用具有更新令牌的用户凭据(如 oidc 或 gke/gcloud auth)时,令牌由 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环境变量指定。

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=present 用于 DeploymentDaemonSetPod,以及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

返回值

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

描述

result

列表 / 元素=字典

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

返回:成功

示例: [{"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)