apiVersion: operator.tekton.dev/v1alpha1
kind: ManualApprovalGate
metadata:
name: manual-approval-gate
spec:
targetNamespace: openshift-pipelines
您可以在管道中指定手动审批任务。当管道到达此任务时,它会暂停并等待一个或多个 OpenShift Container Platform 用户的批准。如果任何用户选择拒绝任务而不是批准它,则管道将失败。手动审批网关控制器提供此功能。
手动审批网关只是一个技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供了对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅 技术预览功能支持范围。 |
要使用手动审批任务,您必须首先启用手动审批网关控制器。
您已在集群中安装了 Red Hat OpenShift Pipelines 运算符。
您已使用 `oc` 命令行实用程序登录到集群。
您具有 `openshift-pipelines` 命名空间的管理员权限。
创建一个名为 `manual-approval-gate-cr.yaml` 的文件,其中包含以下 `ManualApprovalGate` 自定义资源 (CR) 的清单
apiVersion: operator.tekton.dev/v1alpha1
kind: ManualApprovalGate
metadata:
name: manual-approval-gate
spec:
targetNamespace: openshift-pipelines
通过输入以下命令应用 `ManualApprovalGate` CR
$ oc apply -f manual-approval-gate-cr.yaml
通过输入以下命令验证手动审批网关控制器是否正在运行
$ oc get manualapprovalgates.operator.tekton.dev
NAME VERSION READY REASON
manual-approval-gate v0.1.0 True
确保 `READY` 状态为 `True`。如果它不是 `True`,请等待几分钟然后再次输入命令。控制器可能需要一些时间才能达到就绪状态。
您可以在您的管道中指定手动审批任务。当管道运行的执行到达此任务时,管道运行将停止并等待一个或多个用户的批准。
您已启用手动审批网关控制器。
您已创建管道的 YAML 规范。
在管道中指定一个 `ApprovalTask`,如下例所示
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: example-manual-approval-pipeline
spec:
tasks:
# ...
- name: example-manual-approval-task
taskRef:
apiVersion: openshift-pipelines.org/v1alpha1
kind: ApprovalTask
params:
- name: approvers
value:
- user1
- user2
- user3
- name: description
value: Example manual approval task - please approve or reject
- name: numberOfApprovalsRequired
value: '2'
- name: timeout
value: '60m'
# ...
参数 | 类型 | 描述 |
---|---|---|
|
数组 |
可以批准任务的 OpenShift Container Platform 用户。 |
|
字符串 |
可选:审批任务的描述。OpenShift Pipelines 将描述显示给可以批准或拒绝任务的用户。 |
|
字符串 |
任务所需的来自不同用户的批准次数。 |
|
字符串 |
可选:批准的超时期限。如果任务在此期限内未收到配置的批准次数,则管道运行将失败。默认超时时间为 1 小时。 |
当您运行包含审批任务的管道并且执行到达审批任务时,管道运行将暂停并等待用户批准或拒绝。
用户可以使用 Web 控制台或 `opc` 命令行实用程序批准或拒绝任务。
如果任何一个在任务中配置的审批者拒绝了该任务,则流水线运行失败。
如果一个用户批准了任务,但配置的审批数量尚未达到,则同一用户可以更改为拒绝任务,并且流水线运行失败。
您可以使用 OpenShift Container Platform Web 控制台批准或拒绝手动审批任务。
如果您在手动审批任务中被列为审批者,并且流水线运行到达此任务,则 Web 控制台会显示通知。您可以查看需要您审批的任务列表,并批准或拒绝这些任务。
您已启用 OpenShift Pipelines 控制台插件。
通过完成以下操作之一,查看您可以批准的任务列表:
当显示关于需要您批准的任务的通知时,请点击该通知中的“转到审批选项卡”。
在管理员视角菜单中,选择流水线 → 流水线,然后点击审批选项卡。
在开发者视角菜单中,选择流水线,然后点击审批选项卡。
在流水线运行详情窗口的详情选项卡中,点击代表手动审批任务的矩形。列表仅显示此任务的审批。
在流水线运行详情窗口中,点击审批任务选项卡。列表仅显示此流水线运行的审批。
在审批任务列表中,在代表您要批准的任务的行中,点击图标,然后选择以下选项之一:
要批准任务,请选择批准。
要拒绝任务,请选择拒绝。
在原因字段中输入消息。
点击提交。
您可以使用opc
命令行实用程序批准或拒绝手动审批任务。您可以查看您是审批者的任务列表,并批准或拒绝待审批的任务。
您已下载并安装了opc
命令行实用程序。此实用程序与tkn
命令行实用程序位于同一软件包中。
您已使用 `oc` 命令行实用程序登录到集群。
通过输入以下命令,查看您被列为审批者的手动审批任务列表:
$ opc approvaltask list
NAME NumberOfApprovalsRequired PendingApprovals Rejected STATUS
manual-approval-pipeline-01w6e1-task-2 2 0 0 Approved
manual-approval-pipeline-6ywv82-task-2 2 2 0 Rejected
manual-approval-pipeline-90gyki-task-2 2 2 0 Pending
manual-approval-pipeline-jyrkb3-task-2 2 1 1 Rejected
可选:要查看有关手动审批任务的信息,包括其名称、命名空间、流水线运行名称、审批者列表和当前状态,请输入以下命令:
$ opc approvaltask describe <approval_task_name>
根据需要批准或拒绝手动审批任务。
要批准手动审批任务,请输入以下命令:
$ opc approvaltask approve <approval_task_name>
您可以选择使用-m
参数指定审批消息。
$ opc approvaltask approve <approval_task_name> -m <message>
要拒绝手动审批任务,请输入以下命令:
$ opc approvaltask reject <approval_task_name>
您可以选择使用-m
参数指定拒绝消息。
$ opc approvaltask reject <approval_task_name> -m <message>