community.okd.openshift_route 模块 – 将服务公开为 OpenShift 路由。
注意
此模块是 community.okd 集合(版本 4.0.0)的一部分。
如果您正在使用 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.okd
。您需要进一步的要求才能使用此模块,有关详细信息,请参阅 要求。
要在 Playbook 中使用它,请指定:community.okd.openshift_route
。
community.okd 0.3.0 中的新增功能
概要
查找服务并基于该服务创建新的路由。
类似于用于创建路由的 `oc expose` 和 `oc create route`,但不支持创建服务。
有关从其他资源创建服务的信息,请参阅 kubernetes.core.k8s。
要求
执行此模块的主机需要以下要求。
python >= 3.6
kubernetes >= 12.0.0
PyYAML >= 3.11
参数
参数 |
注释 |
---|---|
指定路由注释。 一组键:值对。 |
|
用于向 API 进行身份验证的令牌。也可以通过 K8S_AUTH_API_KEY 环境变量指定。 |
|
用于向 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 环境变量指定。 |
|
路由的主机名。 |
|
操作要模拟的组。 也可以通过 K8S_AUTH_IMPERSONATE_GROUPS 环境变量指定。示例:Group1,Group2 |
|
操作要模拟的用户名。 也可以通过 K8S_AUTH_IMPERSONATE_USER 环境变量指定。 |
|
现有 Kubernetes 配置文件的路径。如果未提供,并且未提供其他连接选项,则 Kubernetes 客户端将尝试从 ~/.kube/config 加载默认配置文件。也可以通过 K8S_AUTH_KUBECONFIG 环境变量指定。 可以使用分隔符 “;”(对于 Windows 平台)或 “:”(对于其他平台)提供多个 Kubernetes 配置文件。 可以将 Kubernetes 配置作为字典提供。此功能需要 Python Kubernetes 客户端版本 >= 17.17.0。在版本 2.2.0 中添加。 |
|
指定要应用于创建的路由的标签。 一组键:值对。 |
|
要创建的路由的所需名称。 默认为 service 的值 |
|
目标资源的命名空间。 路由也将在该命名空间中创建。 |
|
不应通过代理的以逗号分隔的主机/域名/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” |
|
提供用于向 API 进行身份验证的密码。也可以通过 K8S_AUTH_PASSWORD 环境变量指定。 请阅读 |
|
路由的路径 |
|
是否保存 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 选项
|
|
Route 将流量路由到的端口的名称或编号。 |
|
用于连接的 HTTP 代理的 URL。也可以通过 K8S_AUTH_PROXY 环境变量指定。 请注意,此模块不会从环境中获取典型的代理设置(例如 HTTP_PROXY)。 |
|
用于基本身份验证标头的冒号分隔的用户名:密码。 也可以通过 K8S_AUTH_PROXY_HEADERS_BASIC_AUTH 环境指定。 |
|
用于代理基本身份验证标头的冒号分隔的用户名:密码。 也可以通过 K8S_AUTH_PROXY_HEADERS_PROXY_BASIC_AUTH 环境指定。 |
|
表示您想要的 user-agent 的字符串,例如 foo/1.0。 也可以通过 K8S_AUTH_PROXY_HEADERS_USER_AGENT 环境指定。 |
|
要公开的服务的名称。 当 state 不为 absent 时是必需的。 |
|
确定是应该创建、修补还是删除对象。当设置为 选项
|
|
Route 的终止类型。 如果留空,则不会设置终止类型,并且路由将是不安全的。 当设置为 insecure 时,将忽略 tls。 选项
|
|
为新创建的路由配置 TLS。 仅当设置了 termination 时使用。 |
|
目标主机上 CA 证书文件的路径。 当 termination 设置为 passthrough 时不支持。 |
|
目标主机上证书文件的路径。 当 termination 设置为 passthrough 时不支持。 |
|
用于保护连接的 CA 证书文件的路径。 仅当 termination 设置为 reencrypt 时使用。 默认为服务 CA。 |
|
设置 Route 的 InsecureEdgeTerminationPolicy。 当 termination 设置为 reencrypt 时不支持。 当 termination 设置为 passthrough 时,仅支持重定向。 如果未提供,则将不允许不安全的流量。 选项
|
|
目标主机上密钥文件的路径。 当 termination 设置为 passthrough 时不支持。 |
|
提供用于与 API 进行身份验证的用户名。也可以通过 K8S_AUTH_USERNAME 环境变量指定。 请注意,这仅适用于配置为使用 HTTP 基本身份验证的集群。如果您的集群具有不同的身份验证形式(例如 OpenShift 中的 OAuth2),则此选项将无法按预期工作,您应该研究 community.okd.k8s_auth 模块,因为它可能可以满足您的需求。 |
|
是否验证 API 服务器的 SSL 证书。也可以通过 K8S_AUTH_VERIFY_SSL 环境变量指定。 选项
|
|
是否等待某些资源类型最终处于所需状态。 默认情况下,模块在 Kubernetes 收到请求后退出。 为 对于没有实现的资源类型,除非设置了 选项
|
|
指定在状态上等待的自定义条件。 如果未设置 |
|
所需条件中 reason 字段的值 例如,如果 条件中可能的原因特定于 Kubernetes 中的每种资源类型。 请参阅给定资源的状态字段的 API 文档,以查看可能的选择。 |
|
所需条件中 status 字段的值。 例如,如果 选项
|
|
要等待的条件类型。 例如, 如果您要指定 如果留空,则将忽略 条件的可能类型特定于 Kubernetes 中的每种资源类型。 请参阅给定资源的状态字段的 API 文档,以查看可能的选择。 |
|
检查之间休眠的秒数。 默认值: |
|
等待资源最终处于所需状态的秒数。 如果未设置 默认值: |
|
主机名的通配符策略。 当前仅支持 Subdomain。 如果未提供,则将使用默认值 None。 选项
|
注释
注意
为了避免当
validate_certs
为 True 时出现 SSL 证书验证错误,必须通过ca_cert
或 kubeconfig 文件提供 API 服务器的完整证书链。
示例
- name: Create hello-world deployment
community.okd.k8s:
definition:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-kubernetes
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: hello-kubernetes
template:
metadata:
labels:
app: hello-kubernetes
spec:
containers:
- name: hello-kubernetes
image: paulbouwer/hello-kubernetes:1.8
ports:
- containerPort: 8080
- name: Create Service for the hello-world deployment
community.okd.k8s:
definition:
apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes
namespace: default
spec:
ports:
- port: 80
targetPort: 8080
selector:
app: hello-kubernetes
- name: Expose the insecure hello-world service externally
community.okd.openshift_route:
service: hello-kubernetes
namespace: default
insecure_policy: allow
annotations:
haproxy.router.openshift.io/balance: roundrobin
register: route
返回值
常见返回值在此处记录 这里,以下是此模块独有的字段
键 |
描述 |
---|---|
任务的经过时间,以秒为单位 返回值: 当 示例: |
|
已创建或更新的 Route 对象。在删除的情况下将为空。 返回值: 成功 |
|
此对象表示形式的版本化模式。 返回值: 成功 |
|
表示此对象表示的 REST 资源。 返回值: 成功 |
|
标准对象元数据。包括名称、命名空间、注释、标签等。 返回值: 成功 |
|
已创建的 Route 的名称 返回值: 成功 |
|
已创建的 Route 的命名空间 返回值: 成功 |
|
Route 的规范 返回值: 成功 |
|
Host 是指向该服务的别名/DNS。 返回值: 成功 |
|
路由器监视的路径,用于将流量路由到该服务。 返回值: 成功 |
|
定义从路由器到服务端点中端点的端口映射。 返回值: 成功 |
|
此路由指向的服务所选 pod 上的目标端口。 返回值: 成功 |
|
定义用于保护路由和提供终止的配置。 返回值: 成功 |
|
提供证书授权证书内容。 返回值: 成功 |
|
提供证书内容。 返回值: 成功 |
|
提供最终目的地的 ca 证书内容。 返回值: 成功 |
|
指示不安全连接到路由的所需行为。 返回值: 成功 |
|
提供密钥文件内容。 返回值: 成功 |
|
指示终止类型。 返回值: 成功 |
|
指定解析为端点的目标。 返回值: 成功 |
|
路由所引用的目标类型。目前,仅允许使用“Service”。 返回值: 成功 |
|
所引用的服务/目标的名称。例如,服务的名称。 返回值: 成功 |
|
指定目标相对于其他目标引用对象的相对权重。 返回值: 成功 |
|
路由的任何通配符策略。 返回值: 成功 |
|
路由的当前状态详细信息 返回值: 成功 |
|
路由可能暴露的位置列表。 返回值: 成功 |
|
路由入口的状态条件数组。 返回值: 成功 |
|
条件的状态。可以是 True、False、Unknown。 返回值: 成功 |
|
条件的类型。目前只有 'Ready'。 返回值: 成功 |
|
暴露路由的主机字符串。 返回值: 成功 |
|
路由器的外部主机名,可用作此路由请求的主机的 CNAME。可能未设置。 返回值: 成功 |
|
路由器选择用于标识自身的名称。 返回值: 成功 |
|
暴露此路由时允许的通配符策略。 返回值: 成功 |